【发布时间】:2016-07-08 22:22:06
【问题描述】:
我有两天的“googleing”和“msdning”。我所拥有的所有信息都是如何获得短名称,如果你有强大的,加载了一个程序集或其他类似的东西。但是,当您只有短名称时,没有关于如何加载(或只是获取全名,以使用它来加载)程序集的信息。 Assembly.Load 想要 FullName,Assembly.LoadPartial 已弃用且不起作用。所以我有些困惑...
【问题讨论】:
标签: c# assemblies
我有两天的“googleing”和“msdning”。我所拥有的所有信息都是如何获得短名称,如果你有强大的,加载了一个程序集或其他类似的东西。但是,当您只有短名称时,没有关于如何加载(或只是获取全名,以使用它来加载)程序集的信息。 Assembly.Load 想要 FullName,Assembly.LoadPartial 已弃用且不起作用。所以我有些困惑...
【问题讨论】:
标签: c# assemblies
嘿...这个问题很愚蠢...我尝试将“System.Math”(选择这个只是为了测试)作为一个程序集加载,但这是一个类...所以当我尝试加载 System.Math 时。 IO.Compression 加载成功。
Assembly a = Assembly.LoadWithPartialName("System.IO.Compression");
textBox1.AppendText( Environment.NewLine + a.GetName().Name );
【讨论】:
我知道这个问题已经很老了,但是对于可能由 Google 领导的其他人来说:
Assembly.Load 似乎也可以使用短程序集名称(无版本、文化或公钥令牌),至少在我的情况下。
另一种可能是:
Assembly assembly = AppDomain.CurrentDomain
.GetAssemblies()
.SingleOrDefault(assembly => assembly.GetName().Name == myAssemblyName);
请注意Assembly.GetName 的安全限制。
【讨论】: