我对.Net有点新鲜,所以对我很轻松;-)。反正。
我正在开发我的第一个WP7库项目,我希望它与XNA和SilverLight应用程序兼容。根据我是在XNA还是Silverlight,我的工厂类之一需要加载不同的配置类。什么是在运行时从库中确定这一点的最佳方法。
我知道我可以在编译时使用“SILVERLIGHT + WINDOWS_PHONE”预处理程序指令执行此操作。但这意味着要构建两个DLL,这并不理想。
〜嗅
答案 0 :(得分:3)
我怀疑您所查找的信息可以在Environment.Version
媒体资源或OperatingSystem.Version
媒体资源中找到。
答案 1 :(得分:0)
我能想到的最好的就是设置你的图书馆:
[Conditional(#XNA),
Conditional(#WINDOWS_PHONE)]
public void DoSomeWork()
{
var x = null;
x = DoSomeXNAWork();
x = DoSomeWP7Work();
if (x != null)
{
...
}
}
[Conditional(#XNA)]
private ?? DoSomeXNAWork()
{
return ??;
}
[Conditional(#WINDOWS_PHONE)]
private ?? DoSomeWP7Work()
{
return ??;
}
然后,只需确保引用此库的项目具有指令集。有点像Microsoft如何使用调试条件类Debug.WriteLine(...)
。我不知道如何使用2个不同的配置文件。我确信有一种方法,因为当你创建一个新的Web项目(ASP.NET)时,有一个配置文件被分成Web.Debug.config和Web.Release.config。我找不到关于如何在ASP.NET之外执行此操作的答案。