好了,所以我玩了几个小时左右无果后,我建立了一个模型:属性在C#创建领域
[AttributeUsage(AttributeTargets.All)]
public class PublicAttribute : System.Attribute
{
public enum Access { Public, Private }
public PublicAttribute(string Name, Access acs)
{
}
public PublicAttribute(string Name, Access acs, Action get, Action set)
{
}
}
所以,如果有人是做这样的事情:
[Public("PublicProperty", PublicAttribute.Access.Public)]
private string PrivateProperty = "hello";
或
[Public("PublicProperty", PublicAttribute.Access.Public,()=>{return PrivateProperty;},()=>{PrivateProperty = value})]
private string PrivateProperty = "hello";
,然后,如果有人试图访问PrivateProperty,他们可能只是去:
ContainingClass.PublicProperty = // ect
“PublicProperty”。这是因为属性,它会使用这些get/set访问器。
我想知道些什么:
- 这甚至可能吗?
- 有没有东西已经做到了这一点?
- 如果可能的话(即使有别的东西)我该怎么做?
WebMethodAttribute有点不同。它指示Web服务路由基础设施为该方法展示SOAP操作。它实际上并没有在类上创建额外的编译时成员(在sniperX的情况下是一个属性)。 – itowlson 2010-03-06 02:21:18