2017-04-11 129 views
0

我打算給我的程序中的某些類使用Attributes方法調用權限,但我只是沒有提示如何。防止某些類使用屬性調用某些方法

例如,這裏是我希望我的Customer類的樣子:

[ForbiddenMethodsAttr(listOfMyForbiddenMethods)] 
public class Customer 
{ 
    public Customer { } 
} 

如果我要打電話給定功能,智能感知應溫暖着我,我不能,我之所以想要這樣做是因爲調用這些函數可能會導致一些問題,而不是我是唯一一個會編寫此項目的人,但也有一些朋友。所以如果有可能寫出這樣的屬性,該怎麼做呢?

+2

你的聲音基本上需要編寫一個Roslyn代碼分析器。這種能力不是常規C#語言的一部分。 –

+0

呃所以我想要一些過於高級的偶然屬性? – agiro

+0

我不明白爲什麼你不能在方法級別屬性上拋出異常,如果進行非授權調用。 –

回答

1

您可以將方法標記爲過時,然後任何調用它們的人都會收到編譯器警告(儘管不會出錯)。它並不優雅,但也不試圖在不使用範圍約定的情況下限制方法調用。

+0

合理的和回答的問題,雖然我想我有小夥子在這種情況下重新考慮整個結構。總之感謝您的建議! – agiro