2012-02-13 19 views
1

我需要參考程序集PresentationFramework.ClassicPresentationFramework.Luna,我有一種情況需要使用Microsoft.Windows.Themes.DataGridHeaderBorder類型。但是這會給出錯誤,因爲這兩個程序集都有這種類型定義。 我的意思是,我可以指任何人(經典或紅月)的這種類型的做,它只是一個簡單的Datagrid,在這裏我需要檢查,如果被點擊的DataGridHeaderBorder如何在兩個不同的DLL中訪問一個具有相同完全限定名的類型

在此先感謝。

回答

2

這是哪門子的局面external assembly aliases旨在解決。如果命令行編譯不是您的事情,您還可以在Visual Studio的引用屬性表中使用「別名」屬性指定引用的別名。完整的示例請參見http://blogs.msdn.com/b/ansonh/archive/2006/09/27/774692.aspx

+0

嗨,我嘗試了上面的選項,但遇到了問題,因爲這不符合WPF項目的工作,並已報告爲錯誤 - [錯誤鏈接](https://connect.microsoft.com/VisualStudio/feedback/details/615953 /參考別名 - 被忽視的,對含一些-XAML的文件 - 項目 - #細節)。我嘗試瞭解決方法,但是我遇到了這個錯誤 - ** extern別名'Classic'沒有在/參考選項中指定** – 2012-02-14 06:53:59

+0

這是一個很好的幫助,只是我不會使用WPF。我已經閱讀了很多,並發現這是處理這種情況的實際解決方案,但此解決方案不適用於WPF應用程序,並已被MS標記爲bug。這將在4.5版本中解決。大文章雖然。我終於刪除了一個程序集引用,並試圖在沒有它的情況下執行。 – 2012-02-29 06:26:36

+0

我仍然會將此標記爲答案。 – 2012-02-29 06:26:55

3

試試這個:

using Clasic = PresentationFramework.Classic; 
using Luna = PresentationFramework.Luna; 



namespace Test1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Clasic.Microsoft.Windows.Themes.DataGridHeaderBorder bClassic; 
      Luna.Microsoft.Windows.Themes.DataGridHeaderBorder bLuna; 
     } 
    } 
} 
+0

它不適合我。它說_找不到類型或命名空間名稱'PresentationFramework'(你是否遺漏了使用指令或程序集引用?)_,儘管我已經包含了這兩個程序集引用。 – 2012-02-13 17:23:38

+0

命名空間是否正確?驗證/驗證源類和Luna程序集並確保命名空間匹配並且不在其他命名空間中。程序集名稱不必與名稱空間相匹配,但通常情況如此。 – codechurn 2012-02-13 17:31:00

+0

@藝術 - 我已經驗證過,並且名稱空間並未植根於其他一些。這兩個程序集的根名稱空間都是Microsoft.Windows.Themes。你有沒有嘗試過這與WPF因爲我的是一個** WPF應用程序**? – 2012-02-29 06:23:50

相關問題