GetEntryAssembly aus der Portable Class Library (Profil 158)

8

Ich möchte den Namen der Eingabeassembly abrufen, z. B. myApp.exe. Zuvor in net45, würde ich Assembly.GetEntryAssembly verwenden, aber dies ist nicht in Profil 158 verfügbar. Gibt es Alternativen? (Könnte ich Assembly.GetCallingAssembly den ganzen Weg zurückketten?) Irgendwelche Tipps sehr geschätzt.

Mit GetEntryAssembly kann ich den Namen der Anwendung bestimmen. Ich verwende diesen Namen für den UserAgent in HttpClient-Aufrufen sowie für das Benennen von Dateien und das Kennzeichnen von Feedback mit der ursprünglichen Anwendung. Alternative Methoden, um den Namen der Anwendung zu erhalten, würden geschätzt.

    
tofutim 12.12.2013, 22:20
quelle

1 Antwort

1
  

Um den Namen der Anwendung zu erhalten

Sie müssen sich mit der harten Tatsache auseinandersetzen, dass Assembly.GetEntryAssembly () in Store and Phone-Apps nicht verfügbar ist. So steht Ihnen auch nichts zur Verfügung, Ihre Bibliothek konnte in einer solchen App nicht funktionieren. Problemumgehungen können für fehlende .NET Framework-Unterstützung schwierig sein, aber das ist ein einfacher. Für welche Anwendung Ihre Bibliothek auch immer verwendet wird, diese Informationen erhalten Sie nie. Entweder, weil es nicht die Einschränkung hat, GetEntryAssembly () zu verwenden, oder natürlich, weil weiß, was sein logischer Name ist.

Legen Sie also einfach eine Eigenschaft offen, damit der Client-Programmierer Ihnen davon erzählen kann. Geben Sie einfach eine Ausnahmebotschaft "Wirklich gut" an, damit er sofort weiß, wenn er vergisst. Etwas wie:

%Vor%

Stellen Sie sicher, dass Sie die Eigenschaft in Ihrem eigenen Code anstelle des privaten Felds verwenden, damit die Ausnahme zuverlässig ausgelöst wird.

Nun wird also ein App-Programmierer in der App die Eigenschaftszuweisung in seinem App-Konstruktor fest codieren:

%Vor%

Es ist natürlich auch ein vollkommen legitimer (und vorzuziehender) Ansatz, dem Client-Programmierer zu erlauben, einen App-Namen über einen Klassenkonstruktor zu übergeben.

    
Hans Passant 24.12.2013 22:08
quelle

Tags und Links