反射取值getvalue遇到的问题

发布时间:2020-06-30 16:36:29来源:本站阅读(901)

    最近项目中用到反射了。功能是用model里的值 替换string 里的内容,就写了个方法。

    private static string SetValue<T>(T value, string Str)
    {
    var t = value.GetType();
    var prop = t.GetProperties();
    if (prop.Any())
    {
    foreach (var p in prop)
    {
    var v = p.GetValue(value, null).ToString();
    var n = p.Name;
    Str = Str.Replace($"str_{n}", v);

    }
    }

    return Str;
    }

    以上是最终可以运行的代码。

    写测试的时候是在framework 4.5下写的,是这样的

    var v = p.GetValue(value).ToString();

    但项目比较老,用的framework4.0,这句就执行不了了。4.0下没有1个参数的方法。但第二个参数怎么传,传什么没太明白。百度了下,基本无获。

    后来看了微软的文档 https://docs.microsoft.com/zh-cn/dotnet/api/system.reflection.propertyinfo.getvalue?redirectedfrom=MSDN&view=netframework-4.0


    修改运行。

关键字getvalue 反射

上一篇: AsNoTracking小谈

下一篇: 重载和重写