![](/img/trans.png)
[英]Convert the user defined type to string and string to user defined type
[英]Convert String Value to User Defined Type
嗨,我想将字符串值转换为DataType以便我可以使用它。 首先,我想描述一下我的问题。
1:我已键入数据集命名文件
2:此数据集包含6个数据表
3:DataTables名称是( File01 , File02 , File03 , File04 , File05 , File06 )
4:现在我要动态检查要调用哪个DataTable并使用Reflection创建该类的实例。
string dataTableName = filename + "DataTable"; //This will generate File01DataTable,File02DataTable...,File06DataTable
Type dataTableType = typeof ( Files.File01DataTable ).Assembly.GetType( dataTableName );
5:现在创建该DataTable的实例。 这里的tDS是TypedDataSet文件实例
dataTableType dt = ( dataTableType )tDS.Tables[filename];
6:但是超出权限不起作用。 当我尝试返回类型时,它将返回null而不是该类。 有人可以指导我吗?
提前致谢
编辑:很好, 谢谢罗尼,因为您解决了我50%的问题。 现在,当我输入内容时,这是实例化对象的另一种情况。
string dataTableName = filename + "DataTable";// It Generate File01DataTable and so on till File06DataTable.
现在,当我想在运行时实例化对象时,我无法告诉它
File01DataTable dt = (File01DataTable) tDS.Table[filename];
相反,我需要通用对象,应该在运行时决定实例化哪个对象,例如File02DataTable或File05DataTable。 那么我该如何克服这个问题呢?
您的班级是否嵌套? 如果是这样,您将需要在类之间添加'+'字符。 另外,需要一个完全引用的名称空间来返回类型。
namespace SO
{
class Program
{
static void Main(string[] args)
{
string dataTableName = "SO.Files+File01DataTable";
Type dataTableType = typeof(Files.File01DataTable).Assembly.GetType(dataTableName);
Files.File01DataTable dt = (Files.File01DataTable)Activator.CreateInstance(dataTableType);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.