我得到了一个由 System.CodeDomCompiler 在运行时创建的程序集。编译的程序集使用引用的程序集。此外,我将 CodeDomAssembly 声明为我在运行时编译的程序集,并将 RefAssembly 声明为 CodeDomAssembly 使用的引用程序集。
在 RefAssembly 中有一个名为 KeyHavester 的静态类,具有静态列表和静态属性/方法。CodeDomAssembly 包含 WPF 表单。我这样称呼这些表格:
RefType = CodeDomAssembly.GetType("formname");
CodeDomAssembly.CreateInstance(.....);
MethodInfo = RefType.GetMethod("ShowDialog");
bool? dialogresult = (bool?)MethodInfo.Invoke(RefType , new object[] { });
好的,到目前为止它可以工作.. 表单返回对话框结果后,KeyHavester 类中有收集的键。静态类 KeyHavester 保存所有键,是 CodeDomAssembly 的引用程序集。所以我认为这应该可以像这样访问:
RefType = CodeDomAssembly.GetType("KeyHavester"); //static class in RefAssembly
MethodInfo = RefType.GetMethod("GetKeys"); //GetKeys() return a List<string>
我得到的只是 RefType == null。那么如何通过 CodeDomAssembly 访问 RefAssembly 中的静态 KeyHavester 类呢?
RefAssembly 是否需要公共 Token?RefAssembly = {FunktionBibliothek,版本=1.0.0.0,文化=中性,PublicKeyToken=null}
我如何让它工作?