object objType = Assembly.Load(path).CreateInstance(CacheKey)为空

班门弄斧 2011-04-19 02:42:03
最近利用动软的抽象工厂三层模式,在反射创建的时候
object objType = Assembly.Load(AssemblyPath).CreateInstance(ClassNamespace)为空,无法创建。
...全文
125 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
班门弄斧 2011-04-19
  • 打赏
  • 举报
回复
反射的好处是什么?
反射好像一开始就直接实例化了接口
51Crack 2011-04-19
  • 打赏
  • 举报
回复
AssemblyPath = 文件名
ClassNamespace = 命名空间.类名
班门弄斧 2011-04-19
  • 打赏
  • 举报
回复
我阴差阳错的给调试通了,具体的原理我还是不很清楚,希望能有高手详细的讲解一下“抽象工厂三层模式”的好处在哪儿,之前因为一直使用简单三层模式,所以还不是很习惯。
xiaoyuzi 2011-04-19
  • 打赏
  • 举报
回复
参考一下我用的例子吧,注意abc.exe和当前程序在同一个目录下

Assembly asmABC = Assembly.LoadFrom("abc.exe");
string strClass = string.Empty;
if (null != asmABC)
{
strClass = "YourNamespace.YourClassName";
try
{
Type typeMyClass = asmABC.GetType(strClass);
object obj = Activator.CreateInstance(typeMyClass);

System.Reflection.MethodInfo miMethod = typeMyClass.GetMethod("Initialize");
miMethod.Invoke(obj,null);
}
catch (Exception e)
{
throw e;
}
}

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧