我知道这是一个奇怪的请求,但我有不同解决方案之间共享的代码。当我运行代码时,我希望它“略微”不同。
有没有办法可以检查正在执行的bin / application / solution?
希望有人有一些好主意。
谢谢,
Mandy Wilson(FPL西棕榈滩)答案 0 :(得分:2)
您可以致电Assembly.GetEntryAssembly()
查找用户启动的Assembly
个实例
然后,您可以查看其AssemblyName
或Location
。
答案 1 :(得分:2)
不确定您对解决方案名称的实际问题,但是您不能只在每个解决方案的Config文件中放置一个不同的标记,并根据该逻辑开关进行逻辑切换吗?说:
<appSettings>
<add key="AppType" value="SomeType1" />
</appSettings>
然后在共享代码中读取该设置,并根据该密钥的实际值使其行为不同。
答案 2 :(得分:1)
我建议使用设置并在部署时明确配置行为。
关键字是App Config和System.Configuration
命名空间。
<appSettings>
<add key="AppType" value="SomeType" />
</appSettings>
var appType = System.Configuration.ConfigurationManager.AppSettings["AppType"]
答案 3 :(得分:1)
我认为,使用执行程序中的元信息并不是最好的方法。一般来说,我会采用以下两种方式之一。首先,使用配置文件。在配置文件中存储每个解决方案的不同信息,并使用配置文件设置来驱动程序行为。如果您不愿意允许用户通过配置文件更改程序行为,那么我将使用插件架构并通过插件提供配置。您的公共代码将取决于插件接口,并且在每个解决方案中,您只需构建包含相应配置信息的插件的不同版本。
答案 4 :(得分:0)
如果我了解您尝试检查每个应用程序的ProductName。
if (Application.ProductName == "App1")
{
// Action
}
else if (Application.ProductName == "App2")
{
// Other Actions
}
我希望我明白你想做什么。