2017-04-11 79 views
0

我打算给我的程序中的某些类使用Attributes方法调用权限,但我只是没有提示如何。防止某些类使用属性调用某些方法

例如,这里是我希望我的Customer类的样子:

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

如果我要打电话给定功能,智能感知应温暖着我,我不能,我之所以想要这样做是因为调用这些函数可能会导致一些问题,而不是我是唯一一个会编写此项目的人,但也有一些朋友。所以如果有可能写出这样的属性,该怎么做呢?

+2

你的声音基本上需要编写一个Roslyn代码分析器。这种能力不是常规C#语言的一部分。 –

+0

呃所以我想要一些过于高级的偶然属性? – agiro

+0

我不明白为什么你不能在方法级别属性上抛出异常,如果进行非授权调用。 –

回答

1

您可以将方法标记为过时,然后任何调用它们的人都会收到编译器警告(尽管不会出错)。它并不优雅,但也不试图在不使用范围约定的情况下限制方法调用。

+0

合理的和回答的问题,虽然我想我有小伙子在这种情况下重新考虑整个结构。总之感谢您的建议! – agiro