XamarinポータブルC#コードのアプリケーションパッケージ名/名前空間/バージョン情報にプログラムでアクセスする方法はありますか? this同様C#のXamarin Cross Platformアプリケーションパッケージ名
(リンクは、Androidのためにアクセスする方法ですが、私はポータブルクラスコードでこれにアクセスするには、既存のC#のクロスプラットフォームな方法があるかどうかを知りたい。)
ないthis。
XamarinポータブルC#コードのアプリケーションパッケージ名/名前空間/バージョン情報にプログラムでアクセスする方法はありますか? this同様C#のXamarin Cross Platformアプリケーションパッケージ名
(リンクは、Androidのためにアクセスする方法ですが、私はポータブルクラスコードでこれにアクセスするには、既存のC#のクロスプラットフォームな方法があるかどうかを知りたい。)
ないthis。
私はあなたの問題に答えましたが、依存関係サービスを使用して作業しています。 Xamarinプラグインがない場合、他の方法はありません。 PCLプロジェクトで
インタフェース:ここ はコードです
public interface IPackageName
{
string PackageName { get; }
}
Androidの実装:
public class PackageNameDroid : IPackageName
{
public PackageNameDroid()
{
}
public string PackageName
{
get { return Application.Context.PackageName; }
}
}
iOSの実装:
public class PackageNameIOS : IPackageName
{
public PackageNameIOS()
{
}
public string PackageName
{
get { return NSBundle.MainBundle.BundleIdentifier; }
}
}
プラットフォームのファイルをマークすることを忘れないでくださいAndroidファイルの依存関係サービス:
[assembly: Xamarin.Forms.Dependency(typeof(PackageNameDroid))]
とiOSのファイル:
[assembly: Xamarin.Forms.Dependency(typeof(PackageNameIOS))]
今、あなたが行ってもいいですし、ちょうどそのようなのPCLでそれを使用することができます。
string packageName = DependencyService.Get<IPackageName>().PackageName;
はそれが役に立てば幸いその他。
Xamarin.Formsにはメソッドはありませんが、依存関係サービスを作成してそれぞれのプラットフォームからパッケージ名を取得できます。 –
ああ。私はそれを避けることを望んでいた。完了したらここにソリューションを投稿します(iOSとAndroidの場合)。 – heights1976