Dll 如何修改此代码以在解决方案中使用另一个项目
此代码将基于文件名打开程序集,并使用T.GetMethod分配HandlerMethod 问题是我不想创建一个dll文件 我想使用解决方案中的项目文件来执行此操作 HandlerMethod的类型如下Dll 如何修改此代码以在解决方案中使用另一个项目,dll,Dll,此代码将基于文件名打开程序集,并使用T.GetMethod分配HandlerMethod 问题是我不想创建一个dll文件 我想使用解决方案中的项目文件来执行此操作 HandlerMethod的类型如下 public void Launch() { if (LinkedInstance != null) return; LinkedInstance = new OrderInstance(ServiceLocation, Algorithm,
public void Launch()
{
if (LinkedInstance != null) return;
LinkedInstance = new OrderInstance(ServiceLocation, Algorithm, MaxPrice, Limit, PoolData, ID, StartingPrice, StartingAmount);
if (HandlerDLL.Length > 0)
{
try
{
Assembly ASS = Assembly.LoadFrom(HandlerDLL);
Type T = ASS.GetType("HandlerClass");
HandlerMethod = T.GetMethod("HandleOrder");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
那么我如何分配HandlerMethod来指向我拥有的类中的一个方法呢
碰巧示例处理程序的程序集的名称是Handler Example
所以我试着把代码改成这个
private MethodInfo HandlerMethod;
它只会导致异常
如何安排ASS引用解决方案中另一个项目中的dll文件。我希望代码更改最少。如果该方法存在于其他项目中,则可以添加对该项目的引用并直接使用该方法,或者如果要使用反射,则Assembly ASS=Assembly.LoadFromHandlerDLL;将完成您已经使用的工作 如果类位于同一项目中,则可以使用Assembly ASS=Assembly.GetExecutionGassembly;在这种情况下,您不需要提供dll名称
注意:虽然OP没有提到他使用的语言,但代码在我看来像c。为什么不添加对该项目的引用?我不想创建一个dll文件,因为如果另一个项目是类库,那么肯定会创建dll文件;我应该用什么填充handlerdll?该类位于assemblyHandlerDLL中的其他项目中。dll应该是包含dll文件完整路径的字符串。如果我不想使用dll文件,我想使用解决方案中的另一个项目,该如何直接使用该方法?您可以使用“添加引用”对话框在“项目”选项卡下添加对该项目的引用。然后,您可以创建类的实例并访问该方法,或者如果它是静态方法,则可以直接使用class.method。
Assembly ASS = Assembly.LoadFrom("HandlerExample");
Type T = ASS.GetType("HandlerClass");
HandlerMethod = T.GetMethod("HandleOrder");