怎么反射将"System.Data.SqlClient.SqlDataAdapter"为类型System.Data.SqlClient.SqlDataAdapter吗?
前面这个是字符串,后面为字符串所对应的类型.
前面这个是字符串,后面为字符串所对应的类型.
解决方案 »
- while循环消耗内存的问题
- 一个进程执行后台执行一个安装文件.exe或者.msi 那么进程结束时怎么捕获运行状态呢,成功,失败?
- 联合查询后分页
- 有没有.net程序的性能分析工具?
- 寻找像OUTLOOK一样的文字编辑控件,要WINFORM的
- 用image预览图片的问题
- HttpWebRequest POST 数据时请求头多了一行Expect: 100-continue,少了数据行
- 如何将tstringlist里的字符串分类存储
- 基于Internet网分布式数据库系统的问题。急急急急
- vb与C#结合问题
- protected override void OnPaint(PaintEventArgs e)在何时运行?
- 几个简单的关于Queue问题,请各位朋友指教下!
Type type = Type.GetType(adpType);
//反射创建实例
object obj = System.Activator.CreateInstance(type);
//转换
System.Data.SqlClient.SqlDataAdapter adp = (System.Data.SqlClient.SqlDataAdapter)obj;
//反射调用方法
type.InvokeMember("methodName",System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic,null,obj,new object[1]{string.Empty });
Type type = Type.GetType(adpType); type为null啊.
"typename, assemblyFullName"看看.net 系统目录下的 config/machine.config, config/web.config大量使用了这个.有了那个表示形式, Type.GetType 就感激你了.
string typeName
)
public static function GetType(
typeName String
) 参数
typeName
类型:String 要获取的类型的程序集限定名称。请参见 AssemblyQualifiedName。如果该类型位于当前正在执行的程序集中或者 Mscorlib.dll 中,则提供由命名空间限定的类型名称就足够了 经过测试,2008的typeof(System.Data.SqlClient.SqlDataAdapter).AssemblyQualifiedName
为 ->
“System.Data.SqlClient.SqlDataAdapter, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”
不知道楼主指的是什么意思?如果编译期间不知道他是什么类型,那我们只能获得他的类型信息对象
GetType(),这个时候具体是什么类型还是不确定的。如果非要转换
switch吧
object obj;
switch (obj.GetType().Name())
{
case "String": string str = obj.ToString(); break;
case "Int32": int num = int.Parse(obj.ToString()); break;
}
不知道楼主的问题是不是想用工厂模式??
switch (obj.GetType().Name)
{
case "String": string str = obj.ToString(); break;
case "Int32": int num = int.Parse(obj.ToString()); break;
}
这个可以.