c# – 为什么MarkupExtension在wpf中是类

c# – 为什么MarkupExtension在wpf中是类,第1张

概述MarkupExtension类的反编译如下所示: [TypeForwardedFrom("WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")]public abstract class MarkupExtension{ [TargetedPatchingOptOut("Per 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);}

正如您所看到的,它可以作为一个接口实现,但它是一个类.为什么WPF团队以这种方式设计它?
而且,in Silverlight it is an interface.

解决方法 在.NET中,您可以使用NGEN(本机生成器),它可以将IL代码编译为适用于运行应用程序的特定计算机的机器代码. (您无法使用此工具将IL代码编译为所有计算机的机器代码,此工具依赖于cpu, *** 作系统和…].由于此工具,您的应用程序的性能将会提升太多.

在WPF(.NET)版本代码中使用的属性[TargetedPatchingOptOut]用于NGEN工具,此属性在构造函数之上使用,因此此处的接口不适用.

在Silverlight中你没有NGEN,你没有名为[TargetedPatchingOptOut]的属性

祝好运

总结

以上是内存溢出为你收集整理的c# – 为什么MarkupExtension在wpf中是类全部内容,希望文章能够帮你解决c# – 为什么MarkupExtension在wpf中是类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1230222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存