好了,所以我玩了幾個小時左右無果後,我建立了一個模型:屬性在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