有没有办法以编程方式访问Xamarin便携式C#代码中的应用程序包名称/命名空间/版本信息?
与this类似(链接是如何访问Android的,我想知道是否存在预先存在的C#跨平台方式来访问便携式类代码中的这种方式。)
不是this。
答案 0 :(得分:14)
我得到了你的问题的答案,但它正在使用依赖服务工作。如果没有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;
希望它可以帮助他人。