C# 为什么某些Microsoft.NET Framework引用源代码无效?
我注意到一些Microsoft.NET Framework参考源代码似乎无效或至少不完整 下面是一个例子: 相关代码:C# 为什么某些Microsoft.NET Framework引用源代码无效?,c#,.net,reference-source,C#,.net,Reference Source,我注意到一些Microsoft.NET Framework参考源代码似乎无效或至少不完整 下面是一个例子: 相关代码: [MarkupExtensionReturnType(typeof(object))] [TypeConverter(typeof(StaticExtensionConverter))] [TypeForwardedFrom("PresentationFramework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31b
[MarkupExtensionReturnType(typeof(object))]
[TypeConverter(typeof(StaticExtensionConverter))]
[TypeForwardedFrom("PresentationFramework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")]
public class StaticExtension : MarkupExtension
{
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public StaticExtension();
public StaticExtension(string member);
[ConstructorArgument("member")]
public string Member { get; set; }
[DefaultValue(null)]
public Type MemberType { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider);
}
构造函数和ProvideValue()
方法都没有主体。据我所知,这不是有效的C#语法,因为它不是一个抽象类
既然这是“参考源”-难道你不应该能够阅读它是如何工作的,以了解它实际上是做什么的吗?没有尸体。。。这似乎不可能
因此,我觉得我一定是缺少了其他一些更完整的代码资源,对C#有些误解,或者误解了参考源的用途
我读到参考资料中有一些关于可能的淫秽内容审查的奇怪之处,但这似乎并不能解释这一点 这不是用于构建程序集的实际C#源代码;它是反编译的。顶部包含绝对路径的注释是一个完全的泄露。引用程序集只包含元数据,不包含可执行代码。引用源实际上并不包括所有程序集的“源”;XAML/WPF是缺失的一大块。我不知道它是否曾经是参考源的一部分,@JeroenMostert我知道它不是实际编译到.NET的源代码,但我确实认为它至少是框架功能的“代表性”源代码。它过去是,但自那以后,它或多或少地被冻结在原地,并在开发转移到.NETCore的同时退休到自动发电机。不幸的是,据我所知,我们没有档案可以用来检查这个特定的源代码是否“正常”可用(很久以前,这只是.NET2框架(“Rotor”)的快照,所以它根本没有WPF)。你可以打开一个我链接的repo的问题,看看是否可以通过至少对实际程序集进行反编译来修复或桥接。我只是在想浏览.Net源代码时使用ILSpy。@Amy:你这样会错过注释,而且参考源代码(对于包含的源代码)中有一些有见地的注释。这加上标识符将有更多有意义的名称,这会有所帮助。尽管如此,ILSpy是一种快速获取源代码的好方法。