// 扩展实例集合
private List<IUserExtension> extensionInstances = new List<IUserExtension>(); /// <summary>
/// 获取指定类型的扩展实例集合
/// </summary>
public IList<IUserExtension> ExtensionInstances
{
get
{
foreach (string assemblyName in this.AssemblyNames)
{
string className = assemblyName + ".UserExtension";
IUserExtension extensionInstance = (IUserExtension)Activator.CreateInstance(assemblyName, className);
this.extensionInstances.Add(extensionInstance);
}
return this.extensionInstances;
}我想把上面的代码用泛型来写在一个基类里,这样子类直接继承时添个类型参数即可使用。但是遇到了问题;
1.在第二个方法里的className名称的创建出问题“.UserExtension”的由来是类型参数去掉第一个字符“I”,
比如,类型参数为IUserExtension,那么className=assemblyName+".UserExtension",这个不知道怎么动态创建?
2.就是下一行,在创建类型实例时类型转换不允许。
请大家帮我看看,该怎么做?
}
private List<IUserExtension> extensionInstances = new List<IUserExtension>(); /// <summary>
/// 获取指定类型的扩展实例集合
/// </summary>
public IList<IUserExtension> ExtensionInstances
{
get
{
foreach (string assemblyName in this.AssemblyNames)
{
string className = assemblyName + ".UserExtension";
IUserExtension extensionInstance = (IUserExtension)Activator.CreateInstance(assemblyName, className);
this.extensionInstances.Add(extensionInstance);
}
return this.extensionInstances;
}我想把上面的代码用泛型来写在一个基类里,这样子类直接继承时添个类型参数即可使用。但是遇到了问题;
1.在第二个方法里的className名称的创建出问题“.UserExtension”的由来是类型参数去掉第一个字符“I”,
比如,类型参数为IUserExtension,那么className=assemblyName+".UserExtension",这个不知道怎么动态创建?
2.就是下一行,在创建类型实例时类型转换不允许。
请大家帮我看看,该怎么做?
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货