使用激活器从可移植 class 项目的界面获取实例
Using activator to get an instance from interface on a portable class project
知道如何在便携式 class 中执行此操作吗? 't' 似乎没有 IsInterface 或 IsAbstract,Type 也没有 IsAssignableFrom。
我正在尝试从可移植 class 库项目中的接口激活一个实例,以便我可以在 Xamarin 中使用它。
我尝试了 this question 中的这段代码,但它不起作用,因为可移植项目中没有很多东西
问题代码:
Type[] iLoadTypes = (from t in Assembly.Load("ClassLibrary1").GetExportedTypes()
where !t.IsInterface && !t.IsAbstract
where typeof(ILoad).IsAssignableFrom(t)
select t).ToArray();
谢谢
可移植 class 库在程序集和类型 class 中有一些更新。
这是在便携式 class 项目中执行所需操作所需的代码。
Type[] interfaceTypes = (from t in Assembly.Load(new AssemblyName("DependencyInjectionClient")).ExportedTypes
where !t.GetTypeInfo().IsInterface && !t.GetTypeInfo().IsAbstract
where typeof(T).GetTypeInfo().IsAssignableFrom(t.GetTypeInfo())
select t).ToArray();
您需要的信息已移至 TypeInfo class。
答案来自this question and this question
这导致 this post
知道如何在便携式 class 中执行此操作吗? 't' 似乎没有 IsInterface 或 IsAbstract,Type 也没有 IsAssignableFrom。
我正在尝试从可移植 class 库项目中的接口激活一个实例,以便我可以在 Xamarin 中使用它。
我尝试了 this question 中的这段代码,但它不起作用,因为可移植项目中没有很多东西
问题代码:
Type[] iLoadTypes = (from t in Assembly.Load("ClassLibrary1").GetExportedTypes()
where !t.IsInterface && !t.IsAbstract
where typeof(ILoad).IsAssignableFrom(t)
select t).ToArray();
谢谢
可移植 class 库在程序集和类型 class 中有一些更新。 这是在便携式 class 项目中执行所需操作所需的代码。
Type[] interfaceTypes = (from t in Assembly.Load(new AssemblyName("DependencyInjectionClient")).ExportedTypes
where !t.GetTypeInfo().IsInterface && !t.GetTypeInfo().IsAbstract
where typeof(T).GetTypeInfo().IsAssignableFrom(t.GetTypeInfo())
select t).ToArray();
您需要的信息已移至 TypeInfo class。
答案来自this question and this question 这导致 this post