当前位置: 首页 > 编程语言 > C#

动态渲染控件,从字符串-XML文件确定类型?Share

时间:2023-04-10 19:33:55 C#

动态渲染控件,从字符串/XML文件确定类型?在ASP.NET应用程序中,我想从XML文档动态呈现多个控件及其属性。更重要的是:我希望能够动态地确定控件的类型。因此,在我的XML文档中,我有这样的内容:myControl1CheckBoxTextForThisControl我可以让一切正常工作,就属性而言,只要我手动将新控件实例化为复选框...但我似乎无法弄清楚如何使它成为一个复选框,而不是文本框或基于XML信息的东西......您可能希望能够控制Control类型之外的输出。我的建议:publicinterfaceIControlProvider{publicControlGetControl(XmlElementcontrolXml);};公共类ControlProviderFactory:IControlProvider{privateDictionaryproviders=newDictionary();publicControlProviderFactory(){//为每种类型添加IControlProvider的具体实现}publicControlGetControl(XmlElementcontrolXml){stringtype=(controlXml.SelectSingleNode("type")asXmlElement).InnerText;if(!providers.ContainsKey(type)thrownewException("Noproviderexistsfor"+type);returnproviders[type].GetControl(controlXml);}}您还可以添加ReflectionControlProvider作为非注册类型的回退,并让它在遇到未知的提供者类型时使用Activator.CreateInstance而不是抛出异常。这样,您可以为了获得最大的灵活性,可以对渲染和动态创建进行特定控制。您可以创建有效类型的字典,或者你也可以使用Activator.CreateInstance按名称创建实例以上是C#学习教程:动态渲染控件,从string/XML文件中判断类型?所有内容分享,如果对你有用,你需要了解更多C#学习教程,希望大家多多关注。本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: