Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么某些Microsoft.NET Framework引用源代码无效?_C#_.net_Reference Source - Fatal编程技术网

C# 为什么某些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

我注意到一些Microsoft.NET Framework参考源代码似乎无效或至少不完整

下面是一个例子:

相关代码:

[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是一种快速获取源代码的好方法。