求代码解释

zhanglong_longlong 2014-07-14 01:37:29
 public static IDAL.IClass1 CreateInputMarch()
{
string ClassName = path + ".Class1";
return (IDAL.IClass1)System.Reflection.Assembly.Load(path).CreateInstance(ClassName);
}


这里用到反射,主要起到的作用是什么,为什么不直接引用接口,而这样去反射,求解。
...全文
133 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
md5e 2014-07-14
  • 打赏
  • 举报
回复
接口还有一个好处是,接口的实现可以是不同的语言开发,可以是vb的,也可以是c#,或者是dephi的
於黾 2014-07-14
  • 打赏
  • 举报
回复
其实静态引用也不一定非要等别人开发完了才能用,反正就是编译不过去而已 真正的好处是,你的DLL可以在需要时加载,不需要不加载. 比如一个庞大的系统中,有很多个用户,每个用户所用的功能不同 那么不用这个功能的用户就不需要把DLL加载到内存中 不要问我为什么不为每个客户单独开发一个程序,而是所有用户都用同一个程序的不同功能.
zhanglong_longlong 2014-07-14
  • 打赏
  • 举报
回复
非常感谢楼上的大神吗
md5e 2014-07-14
  • 打赏
  • 举报
回复
引用 4 楼 zhanglong_longlong 的回复:
[quote=引用 1 楼 dongxinxi 的回复:] 没有直接引用DLL,而是在运行时动态加载的,所以只能用反射创建 这种dal层的动态构建,工厂模式里比较常见
用这个和直接调用DLL好处是什么?[/quote] 他不需要在代码里using你的path 类包,相当于无需等待Class1完成开发后,才能交由下一个人使用,可以path.Class1与调用到Class1的模型同时交由不同的人同步开发,只要双方都基于IClass1上边就可以了
md5e 2014-07-14
  • 打赏
  • 举报
回复
实例化一个类,并强行转换为接口调用
zhanglong_longlong 2014-07-14
  • 打赏
  • 举报
回复
引用 1 楼 dongxinxi 的回复:
没有直接引用DLL,而是在运行时动态加载的,所以只能用反射创建 这种dal层的动态构建,工厂模式里比较常见
用这个和直接调用DLL好处是什么?
moonwrite 2014-07-14
  • 打赏
  • 举报
回复
目的:创建对象 为什么这样:更加path的值创建需要的对象 现在更好的做法是工厂 或接口+IOC(推荐)
宝_爸 2014-07-14
  • 打赏
  • 举报
回复
直接引用接口,必须在编译时决定。 反射可以在运行时决定。 类似Dependency Injection库这样的东西,基本不可能避免使用反射。
  • 打赏
  • 举报
回复
没有直接引用DLL,而是在运行时动态加载的,所以只能用反射创建 这种dal层的动态构建,工厂模式里比较常见

62,039

社区成员

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

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

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

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