C# 类型转发
任何人都可以提供一个使用“向前键入”的真实senario吗?来源: 例如,假设应用程序在名为Utility.dll的程序集中使用示例类。Utility.dll的开发人员可能会决定重构程序集,在此过程中,他们可能会将示例类移动到另一个程序集。如果旧版本的Utility.dll被新版本的Utility.dll及其配套程序集替换,则使用示例类的应用程序将失败,因为它无法在新版本的Utility.dll中找到示例类 Utility.dll的开发人员可以通过使用TypeForwardedToAttribute属性转发示例类的请求来避免这种情况。如果该属性已应用于Utility.dll的新版本,则对示例类的请求将转发到现在包含该类的程序集。现有应用程序继续正常运行,无需重新编译C# 类型转发,c#,.net,C#,.net,任何人都可以提供一个使用“向前键入”的真实senario吗?来源: 例如,假设应用程序在名为Utility.dll的程序集中使用示例类。Utility.dll的开发人员可能会决定重构程序集,在此过程中,他们可能会将示例类移动到另一个程序集。如果旧版本的Utility.dll被新版本的Utility.dll及其配套程序集替换,则使用示例类的应用程序将失败,因为它无法在新版本的Utility.dll中找到示例类 Utility.dll的开发人员可以通过使用TypeForwardedToAttribu
当框架的不同版本在程序集之间移动类型时,BCL库通常使用
TypeForwardedTo
属性。例如,Func
样式的委托从3.5框架中的System.Core移动到4.0框架中的mscorlib
通过在ildasm中从4.0打开System.Core.dll,双击Manifest节点并查找类似于以下内容的所有行,可以查看此功能的实际使用情况
.class extern forwarder System.Func`1
{
.assembly extern mscorlib
}
.class extern forwarder System.Func`2
{
.assembly extern mscorlib
}
.class extern forwarder System.Func`3
{
.assembly extern mscorlib
}
很好的例子。现在,如果只有WCF解析器尊重
TypeForwardedToAttribute
-P