限制对方法的调用

时间:2011-03-06 07:06:23

标签: c# .net

我需要限制从特定方法调用方法。

例如:

我有一个像GetData()这样的函数,我需要它的调用方法的签名 无效SomeFUnction(string a, String b) 否则,编译时不应允许调用GetData

3 个答案:

答案 0 :(得分:1)

不,你不能在编译时这样做。

答案 1 :(得分:1)

如果您只想限制“GetData”可以从“SomeFuncion(...)”调用,那么您可以通过将您的方法封装在类(实例/静态)中并制作“GetData”来轻松实现。方法private,只从你的“SomeFunction(...)”中调用它。你怎么能在编译时限制它!!。

尽管如此,我相信你并没有在这里分享确切的问题陈述。 相反,你正在分享一个你认为可能解决问题的想法!!

分享确切的问题陈述将为您提供更好的答案。

答案 2 :(得分:0)

这不会创建编译时间。但是,如果测试覆盖率达到了GetData()的所有调用,那么这将通过破坏测试来实现您的目标。

public void GetData()
{
   // last method up the stack trace
   var callingMethod = new StackTrace().GetFrame(1).GetMethod();

   var returnType = callingMethod.ReturnType;
   // throw exception if not okay

   var callingMethodParameters = callingMethod.GetParameters();
   // throw exception if not okay

   // GetData implementation
}