私は幾分ネットに慣れていますので、簡単に私のところに行きます;-)。とにかく。ライブラリーから実行時に.Net Frameworkを決定する
私はXNAとSilverLightの両方のアプリケーションと互換性があることを望む私の最初のWP7ライブラリプロジェクトに取り組んでいます。私がXNAであるかSilverlightであるかに基づいて、私の工場クラスの1つが異なる設定クラスをロードする必要があります。実行時にこれをライブラリから判断する最良の方法です。
コンパイル時に "SILVERLIGHT + WINDOWS_PHONE"プリプロセッサディレクティブでこれを行うことができます。しかし、それは理想的ではない2つのDLLを構築することを意味します。ただ、このライブラリを参照するプロジェクトがディレクティブが設定されていることを確認し、その後
[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 ??;
}
:
〜、私はそうのようなあなたのライブラリーを設定されたと考えることができ
これは正しい方向に私を導きます。ありがとう。 Environment.OSVersionは私が必要としていたものです。 WP7では(Microsoft Windows CE 7.0 ..)を返します。 XBoxでは、Xboxで何かを返します。私の場合、どのフレームワークを使用しているかを知る必要があると思ったのは間違っていました。同僚は、どのOSを使用しているかだけを知る必要があると指摘しました。再度、感謝します。 – eSniff