问题描述
我正在尝试输入Func<SomeTypeFromOtherAssembly>
类型。在Type.GetType
调用之前,我通过调用Assembly.Load
static void Main(string[] args,byte[] byteArray)
{
// fqn is correct name,it equals typeof(Func<SomeTypeFromOtherAssembly>).AssemblyQualifiedname
var fqn = "System.Func`1[[OtherAssembly.someTypeFromOtherAssembly,App,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null]],mscorlib,Version=4.0.0.0,PublicKeyToken=b77a5c561934e089"
var t = Assembly.Load(byteArray); // OtherAssembly loads into AppDomain
var t1 = Type.GetType(fqn); // <- null
}
但是如果在调用Type.GetType之前使用OtherAssembly中的任何类,我将获得适当的值(不为null)
static void Main(string[] args,byte[] byteArray)
{
_ = new SomeTypeFromOtherAssembly(); // <- This forced OtherAssembly loading
// fqn is correct name,PublicKeyToken=b77a5c561934e089"
var t = Assembly.Load(byteArray); // OtherAssembly loads into AppDomain
var t1 = Type.GetType(fqn); // <- proper value
}
也许有人知道,如何在不强制加载程序集的情况下获得Func<SomeTypeFromOtherAssembly>
的正确类型值。我确定fqn是正确的(请参见代码段)。我使用.net框架
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)