joo*_*zek 5 c# wpf xaml markup-extensions
MarkupExtension 类的反编译如下所示:
[TypeForwardedFrom("WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")]
public abstract class MarkupExtension
{
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
protected MarkupExtension()
{
}
public abstract object ProvideValue(IServiceProvider serviceProvider);
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它本来可以作为接口实现,但它是一个类。WPF 团队为什么要这样设计?而且,在Silverlight中它是一个接口。
在 .NET 中,您有 NGEN(本机生成器),它允许您将 IL 代码编译为适合运行应用程序的特定机器的机器代码。(你不能使用这个工具将你的IL代码编译为所有计算机的机器代码,这个工具依赖于CPU,操作系统和......]。你的应用程序的性能将因为这个工具而得到很大的提升。
WPF(.NET)版本代码中使用的属性[TargetedPatchingOptOut]是针对NGEN工具的,并且该属性在这里是在构造函数之上使用的,因此该接口不适合这里。
在 Silverlight 中,您没有 NGEN,也没有名为 [TargetedPatchingOptOut] 的属性
祝你好运
归档时间: |
|
查看次数: |
416 次 |
最近记录: |