Assembly.CerateInstance为空问题

快乐的毛毛虫 2012-06-06 11:07:17
Assembly.CerateInstance创建的object为空怎么弄?? 谢谢大家


//load assembly
Assembly assembly = null;
try
{
if (!string.IsNullOrEmpty(ConfigSettings.AssemblyName))
{
assembly = Assembly.Load(ConfigSettings.AssemblyName);
}
else
{
assembly = Assembly.GetCallingAssembly();
}
}
catch (Exception ex)
{
MessageBox.Show("装载程序集失败! " + ex.Message);
Application.Exit();
return;
}

//load class
try
{
//下面这句话,CreateInstance的时候,创建的总是空的object??
CodeGenerator = assembly.CreateInstance(ConfigSettings.DevToolClassName) as IDevTool;

if (CodeGenerator == null)
{
throw new Exception();
}
}
catch (Exception ex)
{
MessageBox.Show("装载工具类失败! " + ex.Message);
Application.Exit();
return;
}
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐的毛毛虫 2012-06-06
  • 打赏
  • 举报
回复
解决了,谢谢大家,输出类型写错了
licai1210 2012-06-06
  • 打赏
  • 举报
回复
那创建DevToolCSharp实例应该没问题吧
快乐的毛毛虫 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
ConfigSettings.DevToolClassName要包含全路径,不能只是一个类名称,比如 Form1,而应该是xxxx.xxxx.Form1
[/Quote]

用了全名了,不行啊。 dll名:DevTool.Service, 类名:DevTool.Service.DevToolCSharp
licai1210 2012-06-06
  • 打赏
  • 举报
回复
就是说你去创建实例的时候程序集里面没有那个类,同时即使有那个类你也需要主要加上完整的路径,也就是dbmh版主说的要把命名空间这些全部加上去。同时你可以用一个你知道的类去测试下创建一个对象,看是否能够创建成功。
  • 打赏
  • 举报
回复
Assembly.Load("AssemblyName").CreateInstance ("ClassName");

加载的程序集中是否包含了创建这个对象所属的类
bdmh 2012-06-06
  • 打赏
  • 举报
回复
ConfigSettings.DevToolClassName要包含全路径,不能只是一个类名称,比如 Form1,而应该是xxxx.xxxx.Form1
bdmh 2012-06-06
  • 打赏
  • 举报
回复
说明程序集中没有你要创建的对象
快乐的毛毛虫 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你所在的程序集中没有object这个类型,所以就返回null了。你可以调用FW程序集试试。或者更准确的说一个带有object类型的程序集
[/Quote]
什么意思? 没看太明白
licai1210 2012-06-06
  • 打赏
  • 举报
回复
你所在的程序集中没有object这个类型,所以就返回null了。你可以调用FW程序集试试。或者更准确的说一个带有object类型的程序集

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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