Чтобы получить имя приложения
Вы будете иметь дело с тем, что жесткий Assembly.GetEntryAssembly() не доступен в магазине и телефон приложений. Таким образом, вы также не можете получить доступ к своей библиотеке в таком приложении. Обходные пути могут быть трудными для отсутствия поддержки .NET Framework, но это очень просто. Независимо от того, какое приложение использует вашу библиотеку, у вас никогда не будет проблем с предоставлением вам этой информации. Либо потому, что у него нет ограничений на использование GetEntryAssembly() или, конечно, потому что знает, каково его логическое имя.
Так что просто выставляйте объект, чтобы клиент-программист рассказал вам об этом. Просто предоставьте сообщение об исключительном исключении Goodly Good, поэтому он сразу узнает, когда он забудет. Что-то вроде:
public static string ApplicationName {
get {
if (_applicationName == null) {
throw new InvalidOperationException("You *must* assign the ApplicationName property before this library is usable");
}
return _applicationName;
}
set { _applicationName = value; }
}
private static string _applicationName;
Обязательно используйте свойство в своем собственном коде вместо частного поля, чтобы исключение было надежно поднято.
Так теперь App Store программист будет просто жестко закодировать присвоение собственности в его App конструктору:
public App()
{
this.InitializeComponent();
this.Suspending += OnSuspending;
YourPclLibrary.ApplicationName = "MyBeautifulSoup";
// etc...
}
позволяет клиенту программисту передать имя приложения через конструктор класса, конечно, также вполне законно (и предпочтительный) подход.
тег PCL автоматически переводится на язык управления принтером. –
Спасибо, извините, все вы, специалисты по управлению принтером, надеясь получить еще несколько баллов. – tofutim
Он недоступен в приложениях Store и Phone. Нет, нет альтернативы, особенно если вы не объясните, зачем вам это нужно. –