C#在运行时添加引用

时间:2009-03-16 07:23:28

标签: c#

很抱歉,如果是重复的帖子。 link text

但我没有得到任何明确的解决方案..

我的应用程序加载各种dll,并处理它们。所以我需要在运行时在我的引用列表中添加dll。

如何在运行时在C#项目中添加程序集(dll)作为参考。我需要在运行时添加一个引用。!?即通常我们通过在解决方案资源管理器中右键单击引用添加引用,我们可以浏览任何dll并将其添加到引用中。我需要使用代码执行此操作。

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace GetType_success
{
    class Program
    {
        static void Main(string[] args)
        {
            Assembly a = Assembly.LoadFrom(@"C:\Documents and Settings\E454935\My Documents\Visual Studio 2005\Projects\nunit_dll_hutt\for_hutt_proj\bin\Debug\for_hutt_proj.dll");            
            Type t = Type.GetType("for_hutt_proj.Class1,for_hutt_proj");             

        }
    }
}

以下是类库for_hutt_proj的代码     使用系统;     使用System.Collections.Generic;     使用System.Text;

namespace for_hutt_proj
{
    public class Class1
    {


            public int add(int a, int b)
            {
                int c = 0;
                c = a + b;
                return c;

            }
}
}

其中,dll只有一个add方法returing int。 如果我在RightClicking中手动添加此dll并在Solution explorer中添加引用,则't'具有正确的类型。否则它有空。 但我需要在运行时添加此dll作为我的项目的参考,即使用代码而不是通过UI。我怎么能在运行时这样做。?

提前感谢。

1 个答案:

答案 0 :(得分:0)

我得到了解决方案。 如果我使用,下面的代码工作正常。

Type type = asm.GetType(“for_hutt_proj.class1”,false,true);

归功于Marc Gravell。