在行执行时,我的应用程序出现异常
public static void Initialize(Context applicationContext, IUnityContainer diContainer)
{
diContainer.RegisterType<IAndroidGlobals, AndroidGlobals>(new ContainerControlledLifetimeManager(), new InjectionConstructor(applicationContext));
}
这是AndroidGlobls类
public class AndroidGlobals : IAndroidGlobals
{
public string ApplicationVersion(string appName)
{
return ApplicationContext.PackageManager.GetPackageInfo(appName, 0).VersionName;
}
public Android.Content.Context ApplicationContext
{
get { return _applicationContext; }
}
private readonly Context _applicationContext;
public AndroidGlobals(Context applicationContext)
{
_applicationContext = applicationContext;
}
}
以下是例外。我该如何解决这个问题
{System.InvalidOperationException:尚无成员匹配数据找到了。错误:RegisterType(生命周期:PerContainer,Invoke.Constructor(dispatch.droid.mainactivity@77cb316))--->System.ArgumentException:找不到与成员匹配的数据。在Unity.Injection.InjectionConstructor.SelectMember(System.Type类型,Unity.Injection.InjectionMember _)[0x0003c]在C:\ projects \ abstractions \ src \ Dependency \ Injection \ Members \ InjectionConstructor.cs:48在Unity.Injection.InjectionMember`2 [TMemberInfo,TData] .AddPolicies [TContext,TPolicySet](System.Type已注册类型,System.Type映射到类型,System.String名称,TPolicySet和策略)[0x00023]在C:\ projects \ abstractions \ src \ Dependency \ Injection \ Abstracts \ InjectionMember.cs:133在Unity.UnityContainer.Unity.IUnityContainer.RegisterType(System.Type typeFrom,System.Type typeTo,System.String名称,Unity.Lifetime.ITypeLifetimeManager durationManager,Unity.Injection.InjectionMember [] injectionMembers)[0x00144]在C:\ projects \ container \ src \ UnityContainer.IUnityContainer.cs:66 ---内部异常堆栈跟踪的结尾---Unity.UnityContainer.Unity.IUnityContainer.RegisterType(System.TypetypeFrom,System.Type typeTo,System.String名称,Unity.Lifetime.ITypeLifetimeManager durationManager,Unity.Injection.InjectionMember [] injectionMembers)[0x002de]在C:\ projects \ container \ src \ UnityContainer.IUnityContainer.cs:97 atUnity.UnityContainerExtensions.RegisterType [TFrom,TTo](Unity.IUnityContainer容器,Unity.Lifetime.ITypeLifetimeManagerlifetimeManager,Unity.Injection.InjectionMember [] injectionMembers)[0x00000]在C:\ projects \ abstractions \ src \ Extensions \ Container \ UnityContainer.cs:132在Ex.Express.Mobile.Core.Shared.Initializer.Initialize(Android.Content.Context applicationContext,Unity.IUnityContainerdiContainer)[0x00012] inD:\ ExNew \ SmartPad \ DEV \ Ex.Express.Mobile \ SmartPad \ Components \ Core \ Core.Shared \ Initializer.cs:72在Ex.Express.Mobile.Core.Droid.Initializer.Initialize(Android.Content.Context applicationContext,Unity.IUnityContainerdiContainer)[0x00001]在D:\ ExNew \ SmartPad \ DEV \ Ex.Express.Mobile \ SmartPad \ Components \ Core \ Core.Droid \ Initializer.cs:22在Ex.Express.Mobile.Apps.DispatchApp.Droid.MainActivity.OnCreate中(Android.OS.Bundle捆绑包)[0x00034]在D:\ ExNew \ SmartPad \ DEV \ Ex.Express.Mobile \ SmartPad \ Apps \ Messages \ DispatchApp.Droid \ MainActivity.cs:121}
我在链接器中使用Sdk and User Assembly
。我该如何解决这个问题?
已通过在所有使用的类的顶部使用属性[Android.Runtime.Preserve(AllMembers = true)]
解决此问题。