【发布时间】:2014-07-07 14:50:04
【问题描述】:
如何获取调用了当前公共方法的方法的命名空间?
我知道如何找到调用方法的名称,但这让我感到困惑。
下面是我在 C# 中的自动化测试解决方案所需的类比:
“ExampleSolution.sln”中有两个cs文件。这些类库中的每一个都有一个命名空间。命名空间“1”和命名空间“A”。
两个命名空间都有一个类和一个方法。
命名空间 1 包含方法“LogIn”,而命名空间 A 包含方法“MyTest”。
MyTest 在开始时调用 LogIn 以执行登录过程。在 LogIn 内部,代码应确定调用方法 MyTest 的命名空间。因此,Namespace A 的字符串名称应该作为“A”返回给 Namespace 1 下的 LogIn 方法。
我想要这样做的原因是,解决方案的结构方式是有价值的组件信息存在,可用于确定一些变量的值,而不必每次都将这些值作为参数传递给 LogIn 方法调用了数百次。
非常感谢任何帮助。
【问题讨论】:
-
"1" 不是有效的命名空间名称。如果您可以演示代码问题而不仅仅是描述问题,那将会更加有用。顺便说一下,您需要知道命名空间的什么?老实说,这听起来像是一个设计问题。
-
嗨,我在原帖中解释了为什么我需要它。此外,为了类比,这些名称是理论上的。
-
在我完成之前按回车键* - 我还没有任何代码可供参考。如果我这样做了,我会发布它。
-
不,你没有真正解释你为什么需要它。您说您想获取信息而不将其作为参数传递-您没有说明为什么这是一件好事。也许最好集中在您调用该方法的位置,而不是?或者在当前上下文的某处有信息?仅仅使用包含调用方法的类的命名空间听起来很脆弱,对测试不友好,而且通常是个坏主意。
标签: c# reflection namespaces