2010-11-18 7 views
2

Ich bin etwas Neues zu .Net, so gehen einfach auf mich ;-). Sowieso.Bestimmung .Net Framework zur Laufzeit aus einer Bibliothek

Ich arbeite an meinem ersten WP7-Bibliothek-Projekt, das ich hoffe, mit den beiden XNA und Silverlight-Anwendungen kompatibel sein. Abhängig davon, ob ich in XNA oder Silverlight bin, muss eine meiner Factory-Klassen unterschiedliche Config-Klassen laden. Was ist der beste Weg, um dies zur Laufzeit aus einer Bibliothek zu bestimmen.

Ich weiß, ich könnte dies tun mit der „+ SILVERLIGHT WINDOWS_PHONE“ Präprozessordirektiven bei der Kompilierung. Aber das würde bedeuten, zwei DLLs zu bauen, was nicht ideal ist.

~ Sniff

Antwort

3

Ich vermute, dass die Informationen, die Sie suchen, in der Environment.Version Eigenschaft oder in der Eigenschaft gefunden werden können.

+0

Das hat mich in die richtige Richtung geführt. Vielen Dank. Environment.OSVersion war was ich brauchte. Auf WP7 gibt es zurück (Microsoft Windows CE 7.0 ..). Und auf XBox gibt es etwas mit Xbox zurück. In meinem Fall war es falsch zu denken, dass ich wissen müsste, in welchem ​​Rahmen ich arbeite, wie ein Kollege darauf hinwies, dass ich nur wissen muss, auf welchem ​​Betriebssystem ich war. Danke noch einmal. – eSniff

0

Das Beste, was ich von einrichtet Ihre Bibliothek denken könnte etwa so:

[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 ??; 
} 

Dann einfach das Projekt sicherstellen, dass diese Bibliothek Verweis auf die Richtlinie gesetzt hat. Ähnlich wie Microsoft die Debug-bedingten Klassen wie Debug.WriteLine(...) verwendet. Ich bin nicht sicher, wie Sie es bekommen könnten, um 2 verschiedene Konfigurationsdateien zu verwenden. Ich bin sicher, es gibt einen Weg, weil, wenn Sie ein neues Webprojekt erstellen (ASP.NET) gibt es eine Konfigurationsdatei, die in Web.Debug.config und Web.Release.config aufgeteilt wird. Ich konnte jedoch keine Antwort darauf finden, wie es außerhalb von ASP.NET funktioniert.

+0

Nicht die beste Antwort in meinem Fall, aber das ist cooles Zeug !!! – eSniff

Verwandte Themen