将字符串转换为C#中的控件类型?

问题描述:

我有字符串属性和与此代码填充它:将字符串转换为C#中的控件类型?

prop1= MyCustomPanle.GetType().ToString(); 

我用PROP1保持控件的类型(WPF基本控制的和客户化控制的)。我保留这个属性,并希望创造价值这类基地属性。事情是这样的:

Type ControlType=Type.Gettype(prop1); 

但这Type.GetType()仅变量类型如int,字符串工作等

如何将字符串转换为控制类型?

您需要将完整的AssemblyQualifiedName转换为GetType()

您可以通过调用GetType().AssemblyQualifiedName来获取此类型的现有实例。

例如

var myControlTypeName = typeof(MyControl).AssemblyQualifiedName; 
var myControlType = Type.GetType(myControlTypeName); 

myControlTypeName以上结束为:

MyNamespace.MyControl,MyProject的,版本= 1.0.0.0,文化=中立,公钥=空

但如果你想让它是版本中立我相信它可以缩短到下面,仍然工作:

MyNamespace。 MyControl,MyProject的

我认为你正在寻找Activator.CreateInstance,这将创建一个基于仅在运行时已知的类型的对象:http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx

+0

不,我只是想的类型不创建对象! – Rev 2012-02-26 09:17:34