我在a中有两个项目/程序集。NET核心解决方案。
-
项目A包含一个名为
FooBase
-
项目B包含一个名为
FooDerived
,以及我想通过反射访问的一堆其他类
我写了一些代码
Foo派生
在项目B中,当进行某个调用时,它使用反射来查找某个类,在该类中查找一个方法,然后调用该方法。它很简单,而且效果很好。
但现在我想将这段代码重构为项目A中的基类……同时仍然使用反射来查找项目B中的内容。
项目B必须引用项目A,因为
Foo派生
需要知道如何继承
FooBase
因此,项目A不能引用项目B,这就引出了我的问题:在我没有引用的项目中,我如何使用反射引用类型和方法?
具体来说,这是我目前内部的一些简化代码
Foo派生
在正常工作的项目B中:
var type = Type.GetType("MyNamespace.MyClassName");
if (type == null)
throw new Exception();
var methodInfo = type.GetMethod("MyMethod", BindingFlags.Public | BindingFlags.Static);
if (methodInfo == null)
throw new Exception();
methodInfo.Invoke(null, null);
因此,在我的代码上下文中总结一下这个问题:当我将此代码迁移到项目A时,它显然无法在项目B中找到类型和方法,因为它们在项目A中不存在,也不存在从项目A到项目B的引用。
是否有办法让我的基类反映到派生类所在的项目中?