这是 ServiceKnownTypeAttribute 的完整源代码吗?

Is this the full source code for ServiceKnownTypeAttribute?

我想查看 ServiceKnownType 属性的源代码,因为我想知道是否要尝试编写一些东西来模拟它的通用版本。我想从实际的源代码开始,然后修改它。

我查看了 .NET 源代码存储库,发现 this link,但那里的代码非常稀疏,而且看起来不包含属性的实现。代码见下方。

我尝试使用反编译器,但生成的代码看起来基本相同。没有任何代码,我不明白这个属性是如何工作的!

任何人都知道我在哪里可以找到实际来源,当然假设它已经发布。

这是 link...

的源代码
namespace System.ServiceModel
{
    [AttributeUsage(ServiceModelAttributeTargets.ServiceContract | ServiceModelAttributeTargets.OperationContract, Inherited = true, AllowMultiple = true)]
    public sealed class ServiceKnownTypeAttribute : Attribute
    {
        Type declaringType;
        string methodName;
        Type type;

        private ServiceKnownTypeAttribute()
        {
            // Disallow default constructor
        }

        public ServiceKnownTypeAttribute(Type type)
        {
            this.type = type;
        }

        public ServiceKnownTypeAttribute(string methodName)
        {
            this.methodName = methodName;
        }

        public ServiceKnownTypeAttribute(string methodName, Type declaringType)
        {
            this.methodName = methodName;
            this.declaringType = declaringType;
        }

        public Type DeclaringType
        {
            get { return declaringType; }
        }

        public string MethodName
        {
            get { return methodName; }
        }

        public Type Type
        {
            get { return type; }
        }
    }
}

看起来很完整。像大多数属性一样,它只是将一些值(许多没有值)与属性本身的语义相关联,因此反映属性附加到的成员、类型 and/or 程序集的代码可以检测到它们关心的属性的存在关于,并在需要时读取该属性的任何属性。

事实上,您发布了 ServiceKnownTypeAttribute 的真实源代码 class。属性只是描述实体,不包含任何逻辑。

您可能还想看看 Mono implementation