字符串转换为变量名 [英] Convert string to variable name

查看:200
本文介绍了字符串转换为变量名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个XML文件,我有一个节点,我读了所有子节点。 。在childNode匹配到一个变量我有这个childNode的值来设置的名称



在循环,我想设置:




  • myvar1到MyValue1

  • myvar2到MyValue2



C#代码:

 保护串myvar1; 
保护串myvar2;

XML的内容是这样的:

 <&参数GT; 
< myvar1> MyValue1< / myvar1>
< myvar2> MyValue2< / myvar2>
< /参数>



C#设置变量:

 的foreach(在xmlParamInstallation.SelectNodes(VAR项参数)[0] .ChildNodes)
{
??????
}



任何想法?



谢谢,



更新1:
在回路中的价值场是空的所有时间

 公共类ParametersTest 
{
公共字符串myvar1 {搞定;组; }
公共字符串myvar2 {搞定;设置;}
}

变种类型= ty​​peof运算(ParametersTest);
的foreach(在xmlParamInstallation.SelectNodes XmlNode的项目(参数)[0] .ChildNodes)
{

VAR字段= type.GetField(item.LocalName);
field.SetValue(场,item.InnerText);
}


解决方案

您可以用做< A HREF =htt​​p://msdn.microsoft.com/en-us/library/ms173183%28v=vs.80%29.aspx相对=nofollow>反射:

  VAR类型= ty​​peof运算(SomeClass的); 
VAR字段= type.GetField(item.Name);
field.SetValue(NULL,item.InnerText);



RE:更新1



  VAR参数=新ParametersTest(); 
变种类型= parameters.GetType();

变种s = @<参数>
< MyVar1> MyValue1< / MyVar1>
< MyVar2> MyValue2< / MyVar2>
< /参数>中;

变种xmlParamInstallation =新的XmlDocument();
xmlParamInstallation.LoadXml(S);

的foreach(在xmlParamInstallation.SelectNodes(XmlNode的项目参数)[0] .ChildNodes)
{

VAR字段= type.GetProperty(item.LocalName );
field.SetValue(参数,item.InnerText,NULL);
}


I have an XML file, I have a node and I read all ChildNodes. The name of the childNode match to a variable I have to set with the value of this childNode.

In the loop, I'd like set :

  • myvar1 to MyValue1
  • myvar2 to MyValue2

The C# Code :

protected string myvar1;
protected string myvar2;

The XML content look like this :

<parameters>
 <myvar1>MyValue1</myvar1>
 <myvar2>MyValue2</myvar2>
</parameters>

C# set variables :

    foreach (var item in xmlParamInstallation.SelectNodes("parameters")[0].ChildNodes)
    {
        ??????
    }

Any idea ?

Thanks,

UPDATE 1: the value "field" in the loop is null all the time.

public class ParametersTest
{
    public string myvar1 { get; set; }
    public string myvar2 {get; set;}
}

var type = typeof(ParametersTest);
foreach (XmlNode item in xmlParamInstallation.SelectNodes("parameters")[0].ChildNodes)
{

    var field = type.GetField(item.LocalName);
    field.SetValue(field, item.InnerText);
}

解决方案

You can do it using Reflection:

var type = typeof(SomeClass);
var field = type.GetField(item.Name);
field.SetValue(null, item.InnerText);

RE: UPDATE 1

var parameters = new ParametersTest();
var type = parameters.GetType();

var s = @"<parameters>
            <MyVar1>MyValue1</MyVar1>
            <MyVar2>MyValue2</MyVar2>
           </parameters>";

var xmlParamInstallation = new XmlDocument();
xmlParamInstallation.LoadXml(s);

foreach (XmlNode item in xmlParamInstallation.SelectNodes("parameters")[0].ChildNodes)
{

    var field = type.GetProperty(item.LocalName);
    field.SetValue(parameters, item.InnerText, null);
}

这篇关于字符串转换为变量名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆