最终结果
//反射机制
//参数
object[] parameters = new object[1];
parameters[0] = _rowDataFromCore;
//(基类)Assembly.Load("当前程序集名称").CreateInstance("命名空间.子类名称"));
type = (ATypeBase)Assembly.Load(typeof(ATypeBase).Assembly.GetName().Name)
.CreateInstance(typeof(ATypeBase).Namespace + "." + string.Format("A{0}", typeName)
,false,System.Reflection.BindingFlags.Default
,null,parameters,null,null);里面全部都用变量替换掉了。完全不用考虑自己写
这里ATypeBase基类肯定在一个命名空间里啦,如果,你写的接口外面人使用的话,库又不开放,还是把factory公开吧
c# 当前程序集名称 :typeof(ATypeBase).Assembly.GetName().Name
c# 命名空间:typeof(ATypeBase).Namespace
本文介绍了一种使用C#反射机制实例化特定命名空间内子类的方法,并提供了具体的代码实现细节。通过将类型名、命名空间等信息作为变量传递,实现了灵活地创建不同类型的对象。
6938

被折叠的 条评论
为什么被折叠?



