通常在C#中创建对象

通常在C#中创建对象,第1张

概述我想要做的是从 XML保存文件加载对象.问题是那些对象可以由用户在运行时配置,这意味着我必须使用反射来获取存储在XML文件中的那些对象的名称和属性. 我正处于通过XML的递归循环中间,直到我需要创建一个对象然后想到的部分…..啊 – 不知道怎么做:( 我有一个填充空对象的数组(m_​​MenuDataTypes),每个可能的类型之一.我的递归加载函数看起来像这样 private void Load 我想要做的是从 XML保存文件加载对象.问题是那些对象可以由用户在运行时配置,这意味着我必须使用反射来获取存储在XML文件中的那些对象的名称和属性.

我正处于通过XML的递归循环中间,直到我需要创建一个对象然后想到的部分…..啊 – 不知道怎么做:(

我有一个填充空对象的数组(m_​​MenuDataTypes),每个可能的类型之一.我的递归加载函数看起来像这样

private voID LoadMenuData(XmlNode menuDatanode){   foreach (object menuDataObject in m_MenuDataTypes)   {       Type menuDataObjectType = menuDataObject.GetType();       if (menuDataObjectType.name == menuDatanode.name)       {          //create object       }   }}

我需要在我的评论中放置一些代码,但我不能有一个大的转换语句或任何东西.我的数组中的对象可以根据用户配置应用程序的方式而更改.

解决方法 你想使用 Activator.CreateInstance(Type)
object instance = Activator.CreateInstance(menuDataObjectType);

为了使其高效工作,您可能需要限制动态创建的实例以实现接口

ICommonInterface i = (ICommonInterface)Activator.CreateInstance(menuDataObjectType)

这样,动态创建的对象变得可用 – 您可以在其上调用接口方法.

总结

以上是内存溢出为你收集整理的通常在C#中创建对象全部内容,希望文章能够帮你解决通常在C#中创建对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存