我有一个网站和一个Web应用程序,它们都记录到一个常见的错误表。我希望能够知道哪个项目记录了错误。但我不能用一些全球财产来做。我想通过反思得到项目名称。这可能吗?它是否保留在清单中,无论项目构建的符号是什么,都可以使用?
答案 0 :(得分:1)
尝试使用以下
System.IO.Path.GetFileName(System.Reflection.Assembly.GetExecutingAssembly().Location)
参考链接::: Get executing assembly name using reflection
http://forums.devshed.com/net-development-87/c--get-project-s-name-via-net-object-483704.html
答案 1 :(得分:1)
“Project”纯粹是一个VS / MSBuild概念,因此不存在于这些工具领域之外。我可以建议的是使用Global.asax
- “派生”应用程序的命名空间的第一个“段”。
var applicationName = typeof(Application).Namespace.SubstringBeforeFirst(".");
答案 2 :(得分:0)
我看到两个解决方案(假设您的错误表是基于SQL的)
重写错误表并“给”每个项目自己写入,然后如果你需要聚合它们,你可以在视图中组成一个简单的联合(然后你可以在结果表中有项目名称基于记录来自哪里)
在错误表中添加一个“项目名称”列,然后在编写错误时填写它(因为每个项目在写入时都知道他的名字是什么,这是一个简单的任务,硬编码这些数据无法闻到太多了)
如果您有限制,请说明在哪里以及为何我们可以更轻松地提供帮助。