昨天想在2005里动态的通过 dll的地全文件名和里面的类名来动态实例化..我用的方法可以把类型实例化出来.(我在监视器里可以看到)就是转换不了类型..(注:我的类继承了一个接口,我转换类型的时候,是把它转成 它继承的接口类型)谁成功过的请指教...
解决方案 »
- 如何给gridview动态添加一行。
- EF4如何取得存储过程多个table返回结果集
- Winform 程序中如何在Treeview的节点后面添加按钮实现添加和删除的功能
- 隐藏winform窗体在状态栏的显示。。。
- c#怎么将winform设置为前置?
- svn可不可以在WINDOWS2003上用?
- 关于javascript在vs2005中的问题,郁闷
- access数据库中一个表内含有多少纪录条数
- WPF,这样使用本项目的命名空间为什么不对?
- 如何处理数据库数据的格式问题?
- myDataRow = null;还有必要写吗?
- 在线等待-未能获取此实现的 CryptoAPI 加密服务提供程序(CSP)。
petshop 4.0 出来了,用刀赖特2.0写的,可以参考一下。
private static readonly string orderPath = ConfigurationManager.AppSettings["OrdersDAL"];
private DataAccess() { } public static PetShop.IDAL.ICategory CreateCategory() {
string className = path + ".Category";
return (PetShop.IDAL.ICategory)Assembly.Load(path).CreateInstance(className);
} public static PetShop.IDAL.IInventory CreateInventory() {
string className = path + ".Inventory";
return (PetShop.IDAL.IInventory)Assembly.Load(path).CreateInstance(className);
} public static PetShop.IDAL.IItem CreateItem() {
string className = path + ".Item";
return (PetShop.IDAL.IItem)Assembly.Load(path).CreateInstance(className);
} public static PetShop.IDAL.IOrder CreateOrder() {
string className = orderPath + ".Order";
return (PetShop.IDAL.IOrder)Assembly.Load(orderPath).CreateInstance(className);
} public static PetShop.IDAL.IProduct CreateProduct() {
string className = path + ".Product";
return (PetShop.IDAL.IProduct)Assembly.Load(path).CreateInstance(className);
}
-------------------2005 里的监视器,允许在里面调用..如
((IMyInterface)Assembly.Load(path).CreateInstance(className)).exec();这样是可以的...我在exec()里写的是一个有"Find" Msg 的异常里的监视器告诉我已经触发了但在代码里强行转化就是不行
好好研究一下!~
注意使用的时候不仅要在项目中引用System.Reflection,文件头部也引用一下。public static IDAL_Ver2.IResource Create()
{
Assembly assembly = Assembly.Load("SqlServerDAL_Ver2");
Type type = assembly.GetType("SqlServerDAL_Ver2.Resource");
object obj = Activator.CreateInstance(type);
return (IDAL_Ver2.IResource)obj;
}