Oum*_*daa 4 c# reflection types initialization
我有以下代码
//^process a aquery and return DataTable
DataTable d t= dbConnect.ProcessQuery(strquery);
Type t = dt.Columns[0].DataType.GetType();
Run Code Online (Sandbox Code Playgroud)
如何创建t
将接收的类型的对象dt[0][..]
?
我知道这dt.Rows[][]
将是类型t
我需要创建一个类型的变量 t
Kna*_*ģis 17
第一步是检索您要创建的实际类型.最有可能的是,类型的名称作为String存储在数据库中.所以你打电话
var typeName = "System.Int32";
var type = System.Type.GetType(typeName);
Run Code Online (Sandbox Code Playgroud)
既然您已实例化了实际类型,请调用
var obj = System.Activator.CreateInstance(type);
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,您将拥有一个通用的基本接口,适用于您在每个场景中使用的所有类型:
var i = (IFormattable)obj;
Run Code Online (Sandbox Code Playgroud)
现在您可以调用接口上的方法,它们将在实际类型上执行.
Console.WriteLine(i.ToString("0", System.Globalization.CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)
文档:http://msdn.microsoft.com/en-us/library/wccyzw83.aspx
归档时间: |
|
查看次数: |
6468 次 |
最近记录: |