首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对于Type.GetProperty(),BindingFlags.IgnoreCase不工作吗?

对于Type.GetProperty(),BindingFlags.IgnoreCase不工作吗?
EN

Stack Overflow用户
提问于 2008-11-05 10:05:11
回答 3查看 43.7K关注 0票数 226

想象一下以下情况

类型T具有字段Company。当执行以下方法时,它可以完美地工作:

代码语言:javascript
复制
Type t = typeof(T);
t.GetProperty("Company")

在下面的调用中,我得到了null

代码语言:javascript
复制
Type t = typeof(T);
t.GetProperty("company", BindingFlags.IgnoreCase)

有谁有主意吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-11-05 10:09:36

你已经覆盖了默认的查找标志,如果你指定了新的标志,你需要提供所有的信息,这样才能找到属性。例如:BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance

票数 466
EN

Stack Overflow用户

发布于 2008-11-05 10:07:38

您需要添加BindingFlags.Public | BindingFlags.Instance

票数 53
EN

Stack Overflow用户

发布于 2009-09-22 16:19:03

谢谢,这对我今天真的很有帮助。我保存了审计信息,但属性名称的大小写不正确。(审计内置在数据层中。)无论如何,我不得不添加IgnoreCase作为绑定标志,但它仍然不起作用,直到我的同事找到了这个答案。生成的函数:

代码语言:javascript
复制
public static void SetProperty(Object R, string propertyName, object value)
{
    Type type = R.GetType();
    object result;
    result = type.InvokeMember(
        propertyName, 
        BindingFlags.SetProperty | 
        BindingFlags.IgnoreCase | 
        BindingFlags.Public | 
        BindingFlags.Instance, 
        null, 
        R, 
        new object[] { value });
}

这是我称之为DotMagic的类的一部分。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/264745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档