c# - C# 程序集强制转换为类型失败
问题描述
有我的示例代码
public interface ICommonInterface
{
Task<T> SomeMethod<T>(string params) where T : new();
}
public class ExternalAssembly : ICommonInterface
{
public ExternalAssembly(string params) {...}
public async Task<T> SomeMethod<T>(string params) where T : new() {...}
}
所以我正在从另一个项目加载程序集,该项目也引用了ICommonInterface
. 我有以下代码,在最后一步失败
object assemblyInstance;
Assembly assembly;
assembly = Assembly.LoadFile(assemblyFile);
Type type = assembly.GetType("Namespace.ExternalAssembly");
assemblyInstance = Activator.CreateInstance(type, new[] { params });
var myClass = (assemblyInstance as ICommonInterface);
问题是它myClass
是空的
以前版本的代码可以完美运行,这里是(只有界面不同)
public interface ICommonInterface
{
Task<SomeClass> SomeMethod(string params);
}
public class ExternalAssembly : ICommonInterface
{
public ExternalAssembly(string params) {...}
public async Task<SomeClass> SomeMethod(string params) {...}
}
解决方案
推荐阅读
- reactjs - 使用回调将按钮向下传递给组件
- wpf - ListView 组标题显示多次
- php - php 和 django 与 apache 站点之间的冲突 - 可用
- json - 与 Lambda 代理集成的 AWS API Gateway 失败
- azure - 应用程序网关将 URL 路由到自定义端口
- python - 如何在 Pandas 数据框中将异常时间戳转换为日期时间
- python - Pandas Dataframe:过滤使用列定义的条件
- node.js - sequelize include,连接两个关联表
- python - 无法在 REFRESH_TOKEN_AUTH 验证客户端的秘密哈希
- excel - Excel公式将一个表中的单元格与另一表中的单元格匹配并返回总和值