【发布时间】:2011-09-26 23:22:53
【问题描述】:
我有一个 Web 解决方案,其中包含两个项目(A 和 B),其中 B 引用 A。
在 A 中,我有一个 Html 扩展方法,显然可以从 A 或 B 调用。
我的问题是,一旦方法被调用(通常从局部视图),方法内部是否有办法确定调用是来自 Assembly A 还是 Assembly B 没有传递任何东西给它?
我试图看看我是否可以用HttpContext.Current.Request 做任何事情,但找不到任何有用的东西。我可以获取 URI,但这仍然不能告诉我发起请求的文件在哪个程序集中。
感谢您的回答 - 该方法返回一个字符串,该字符串来自一个 string.resx 文件,每个程序集都有一个。这就是为什么我需要知道要访问哪个文件以返回字符串。由于如果我添加一个新的程序集,每个程序集在启动时都会“注册”自己,所以我的方法不会改变,因为它只会查找程序集。事实上我的整个项目不会改变。我现在不引入另一个参数的原因是 b/c 这将意味着大量的变化,老实说我没有看到好处。虽然我明白你的观点并且我大体上同意它,但我认为在我的情况下,方法并不是返回不同的东西,它只是根据程序集获取正确的资源文件。
【问题讨论】:
-
为什么要这样做?这听起来是个坏主意。如果添加另一个程序集怎么办?如果您将功能从一个装配移动到另一个装配怎么办?或许您应该向此方法添加一个参数,并在调用之间进行不同的设置。
-
@John:如果你不介意的话,我会扩展你所说的内容。
标签: c# asp.net asp.net-mvc assemblies httprequest