IDBserver dBserver =newsqlserverDBhelper(); dBserver.Query();
//Assembly是反射的命名空间引入的类 Assembly assembly = Assembly.Load("DB.sqlserver");//动态加载dll没有后缀 Type type = assembly.GetType("DB.sqlserver.sqlserverDBhelper");//获取类型名称 传递完整类型 Object obj = Activator.CreateInstance(type);//创建对象 ((sqlserverDBhelper)obj).Query();//调用方法 Console.ReadLine();
引入命名空间 using System.Configuration;
配置文件添加,键值对
<appSettings> <add key="IDBHelperType" value="DB.sqlserver,DB.sqlserver.sqlserverDBhelper"></add> </appSettings>
publicclassObjectFactroy { //根据key名字获取,读取到当前项 privatestatic string IDBHelperType = ConfigurationManager.AppSettings["IDBHelperType"]; publicstatic string DLLName = IDBHelperType.Split(‘,‘)[0];//获取DLL名称 publicstatic string TypeName = IDBHelperType.Split(‘,‘)[1];//获取文件名 publicstatic IDBserver CreateInstance() { Assembly assembly = Assembly.Load(DLLName); Type type = assembly.GetType(TypeName);//获取类型名称 传递完整类型 Object obj = Activator.CreateInstance(type);//创建对象 return(IDBserver)obj; } }
IDBserver bserver = ObjectFactroy.CreateInstance();
bserver.Query();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DB.Interface;
namespace DB.Oracle
{
publicclassOracleDBhelper: IDBserver
{
publicOracleDBhelper()
{
Console.WriteLine("{0}被构造",this.GetType().Name);
}
publicvoidQuery()
{
Console.WriteLine("{0},Query",this.GetType().Name);
}
}
}
Assembly assembly = Assembly.Load("DB.sqlserver");//动态加载dll没有后缀
Type type = assembly.GetType("DB.sqlserver.sqlserverDBhelper");//获取类型名称 传递完整类型
Object obj = Activator.CreateInstance(type);//创建对象
MethodInfo method = type.GetMethod("Query",newType[]{});
method.Invoke(obj,newobject[]{});
Assembly assembly = Assembly.Load("DB.sqlserver");//动态加载dll没有后缀
Type type = assembly.GetType("DB.sqlserver.sqlserverDBhelper");//获取类型名称 传递完整类型
Object obj = Activator.CreateInstance(type);//创建对象
{
{
MethodInfo method = type.GetMethod("Query",newType[]{});
method.Invoke(obj,newobject[]{});
}
{
MethodInfo method = type.GetMethod("Query",newType[]{typeof(string)});
method.Invoke(obj,newobject[]{"AB"});
}
{
MethodInfo method = type.GetMethod("Query",newType[]{typeof(int)});
method.Invoke(obj,newobject[]{20});
}
{
MethodInfo method = type.GetMethod("Query",newType[]{typeof(string),typeof(int)});
method.Invoke(obj,newobject[]{"AB",20});
}
{
MethodInfo method = type.GetMethod("Query",newType[]{typeof(int),typeof(string)});
method.Invoke(obj,newobject[]{20,"AB"});
}
}
People people =newPeople() { id=10, Name="YLC" }; people.Property ="字段"; Console.WriteLine("id:{0}",people.id); Console.WriteLine("Name:{0}", people.Name); Console.WriteLine("Property:{0}", people.Property);
Type type =typeof(People); foreach(var item in type.GetProperties())//获取属性 { object obj = item.GetValue(people); Console.WriteLine("{0}:{1}",item.Name,obj); } foreach(var item in type.GetFields())//获取字段 { object obj = item.GetValue(people); Console.WriteLine("{0}:{1}", item.Name, obj); }
原文:https://www.cnblogs.com/cg-ww/p/13099450.html