如何从C#中的String中获取属性?

时间:2014-05-29 10:31:21

标签: c# string properties

我有两个响应和请求的类。我正在从web获取属性以响应请求中的下一步。例如

private List<ControlInfo> _firmcontrolInfo;
    public List<ControlInfo> FirmControlInfo
    {
        get
        {
            return _firmcontrolInfo;
        }
        set
        {
            SetProperty<List<ControlInfo>>(ref _firmcontrolInfo, value, "FirmControlInfo");
        }
    }

public class ControlInfo : BaseCommonModel<string>
{
    [JsonProperty]
    public string ControlName { get; set; }

    [JsonProperty]
    public int ControlLength { get; set; }
}

我正在使用它来填充请求,但它是静态的。我必须找到一种动态的方法来从FirmControlInfo的ControlNames(字符串)中获取请求的属性。这是我的静态代码;

if (FirmControlInfo[0].ControlName.Equals("ABNO1"))
                    request.ABNO1 = AbNoSub;
                else if (FirmControlInfo[0].ControlName.Equals("ABNO"))
                    request.ABNO = AbNoSub;
                if (FirmControlInfo[1].ControlName.Equals("ABNO2"))
                    request.ABNO2 = AbNoRegi;
                else if (FirmControlInfo[1].ControlName.Equals("SICNO"))
                    request.SICNO = AbNoRegi;

我希望,我描述我想要的东西。 我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:0)

我已经在Portable Class中解决了这段代码的问题;

foreach (var item in FirmControlInfo)
            {
                var propInfo = System.Reflection.RuntimeReflectionExtensions.GetRuntimeProperties(typeof(RequestViewModel1)).Where(pi => pi.Name == item.ControlName).First();
                propInfo.SetValue(request, AbNoSub);
            }

感谢。