C#中的Xamarin跨平台应用程序包名称

hei*_*976 1 xamarin

有没有办法以编程方式访问Xamarin便携式C#代码中的应用程序包名称/命名空间/版本信息?

这样(链接是如何访问Android,我想知道是否有一个预先存在的C#跨平台方式来访问便携式类代码.)

不是这个.

小智 14

我得到了你的问题的答案,但它正在使用依赖服务工作.如果没有Xamarin插件,没有其他办法.这是代码:

pcl项目中的接口:

public interface IPackageName
{
    string PackageName { get; }
}
Run Code Online (Sandbox Code Playgroud)

Android实施:

public class PackageNameDroid : IPackageName
{
    public PackageNameDroid()
    {
    }

    public string PackageName
    {
        get { return Application.Context.PackageName; }
    }
}
Run Code Online (Sandbox Code Playgroud)

iOS实现:

public class PackageNameIOS : IPackageName
{

    public PackageNameIOS()
    {
    }

    public string PackageName
    {
        get { return NSBundle.MainBundle.BundleIdentifier; }
    }

}
Run Code Online (Sandbox Code Playgroud)

不要忘记在Android文件中标记依赖服务的平台文件:

[assembly: Xamarin.Forms.Dependency(typeof(PackageNameDroid))]

和iOS文件:

[assembly: Xamarin.Forms.Dependency(typeof(PackageNameIOS))]

现在你很高兴可以在PCL中使用它,就像那样:

string packageName = DependencyService.Get<IPackageName>().PackageName;

希望它能帮助别人.