我知道一种方法,是用接口和基类,所有的子类都继承接口或基类。
然后创建时用Builder模式进行强制类型转换得到想要的实例。但是现在需要转换一个项目,没有基类。例如类A,类B,类C,都属于Test命名空间,程序集名称为ProjectsBLL.dll问题:
能否根据
System.Reflection.Assembly.Load("ProjectsBLL").CreateInstance("Test.A")创建一个实例,然后用某种转换直接使用这些类里的方法?
然后创建时用Builder模式进行强制类型转换得到想要的实例。但是现在需要转换一个项目,没有基类。例如类A,类B,类C,都属于Test命名空间,程序集名称为ProjectsBLL.dll问题:
能否根据
System.Reflection.Assembly.Load("ProjectsBLL").CreateInstance("Test.A")创建一个实例,然后用某种转换直接使用这些类里的方法?
解决方案 »
- 问什么图片不再pictruebox上显示???
- C# winform 窗体锁定和解锁,如何解决?
- 填写表单的时候在一个textbox中按两次ESE将删除所有textbox中的值
- socket UDP方式连接,运行一段时间后就收不到数据包了
- 分页存储过程 返回记录总数问题....
- 关于vs.net2003和vs.net2005的问题!
- 关于 Windows Form 用户控件自定义属性的问题,求助,谢谢!
- 如何通过编程的方式把客户区的内容保存到BMP图片(或其它图片)中去?
- 我想在myExcel.Cells [11,34]处填入一个值,它是myExcel.Cells [11,29]和myExcel.Cells [11,32]的积,怎么弄啊?
- 问一个关于C#运行环境的问题。
- form切換問題
- datagrid增加一行问题?
(A)System.Reflection.Assembly.Load("ProjectsBLL").CreateInstance("Test.A")
这样不行的,因为类的类型是未知的。
能否根据
System.Reflection.Assembly.Load("ProjectsBLL").CreateInstance("Test.A")创建一个实例,然后用某种转换直接使用这些类里的方法?
----------------你能创建一个实例,那么你就可以直接使用实例的方法和属性了.你是不是问如何使用?
如果没有基类或接口的话,你是不知道如何使用的.
但这个功能可以抽象出来.可以使用配置文件来描述操作,给用户以提示.或者将所有操作归类,系统化.比如:读取、配置等。
反射么?我找找看……
// Create new type
Type t = assembly.GetType( "clsTestDll.Test.A");Object obj = t.InvokeMember(null, BindingFlags.DeclaredOnly |
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null );
t.InvokeMember(方法名, BindingFlags.DeclaredOnly |
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags. InvokeMethod,
null, obj, new object[]{ } );