Silverlight 控件開(kāi)發(fā)之 "extern alias” 關(guān)鍵字
早在.net2.0, 微軟就發(fā)布了"extern alias" C#關(guān)鍵字,目的就是為了解決在參照不同的Assembly時(shí)類型全名相同的問(wèn)題。
以前還沒(méi)覺(jué)得有多大的用處,但在做Silverlight DesignTime開(kāi)發(fā)時(shí),深刻感覺(jué)到它的必要了。原因很簡(jiǎn)單,Silverlight的DesignTime(IDE/Blend)都是WPF程序,有很多類型都是同時(shí)存在于SL和WPF assembly 中,比如System.Windows.FrameworkElement 。所以我們需要用這個(gè)關(guān)鍵字來(lái)明確指出代碼中的類型到底屬于SL或者WPF。
System.Windows.FrameworkElement 就在PresentationFramework.dll(WPF)和System.Windows.dll(SL)中都有定義,當(dāng)我們?cè)贒esignTime代碼里需要使用FrameworkElement 時(shí),可以如此調(diào)用:
// sl 就是System.Windows.dll的別名,在IDE里你可以用PropertyWindow去定義此Assembly的Aliases屬性
//
extern alias sl;
using System;
using System.Windows;
internal class SampleDesignTimeClass
{
private void SampleMethod(Type myControlType)
{
// 現(xiàn)在使用的FrameworkElement就是定義在SL中的Type了
//
if (typeof(sl::System.Windows.FrameworkElement).IsAssignableFrom(myControlType))
{
……
}
}
}
浙公網(wǎng)安備 33010602011771號(hào)