Mar*_*son 1 .net c# assemblies gac
以下解决方案是否是在代码中使用GAC库的唯一可能性?
Assembly lib = Assembly.Load("MyLibrary, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31f5625abd53197f");
Console.WriteLine(lib.GetType("MyClass").GetMethod("Start").Invoke(obj, null));
Run Code Online (Sandbox Code Playgroud)
我有点困惑 - 我已经阅读了很多关于GAC的内容,我知道如何在GAC中签署程序集,安装和卸载程序集,但不知道如何使用它,以及它如何帮助程序员(除了它安全地存储相同库的不同版本).我希望我能正常创建类,而不是被迫调用上面提到的方法.
我不想要任何解决方法,例如:"更改Windows注册表",因为我不认为GAC是为这种操作而设计的.我想要一个简单的答案:GAC的用途是什么,运行时环境是否以某种方式使用它?
当代码变得非常丑陋且难以管理时,使用GAC的重点是什么?或许我错过了什么?也许我应该手动将程序集复制到我的本地文件夹中?但我听说这也很难.
海关总署是有帮助你有多个版本的 (这是公共密钥是什么-防止名称冲突)安装并排侧组件,并提供给整机,不只是你的应用程序目录.
所以,使用版本号从GAC访问程序集几乎就是GAC的设计方式.;-)
顺便说一句:你不应该动态加载东西.
IOW:如果您已经知道了类名和汇编版本,那么您可以引用该汇编并跳过相当戏剧性的性能损失,不仅动态加载程序集,还通过反射调用方法.(而不是通过接口或代理重用它们)
归档时间: |
|
查看次数: |
2475 次 |
最近记录: |