这是 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
我想查看 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