主程序是一个C# windows应用程序,其中包含一个ListView控件用于显示一些图元。现在我要做一个DLL,当主程序动态调用这个DLL后,在ListView中动态添加一个图元。
问题是,DLL中如何使用listView.Items.Add()函数?
主程序中用反射调用DLL的代码:
   private void openControlDialog_FileOk(object sender, CancelEventArgs e)
        {
            Assembly assembly;
            assembly = Assembly.LoadFrom(openControlDialog.FileName);
        }DLL应该怎么写?

解决方案 »

  1.   

    public class TestClass()
    {
       public void AddItem(ListItem a)
       {
           a.Items.Add("xxxx");
       }
    }
      

  2.   

    调用时传入 ListItem对象Assembly _objAssembly = Assembly.LoadFile(FileName);
    object _classObj = _objAssembly.CreateInstance(nameSpace + "." + ClassName);
    t = _classObj.GetType();//定义参数
    object[] ParaValueList =new object[1];
    object[0] = this.ListItem1;
    //得到方法信息
    MethodInfo _userMethod = t.GetMethod(MethodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy | BindingFlags.Static);
    //objUserClass = Activator.CreateInstance(_classObj);
    object _resultValue = _userMethod.Invoke(_classObj, ParaValueList);
      

  3.   

    麻烦再问一下Assembly中的LoadFile和LoadFrom函数有什么区别?
      

  4.   

    LOADFILE: 加载程序集文件的内容,此命名空间、类或成员仅在 .NET Framework 1.1 版中受支持。 LOADFROM: 加载程序集。