C# GetProperty 的时候忽略大小写
在C#中,可以使用BindingFlags参数来指定在获取属性时是否忽略大小写。
例如,可以使用BindingFlags.IgnoreCase来忽略大小写,如下所示:
using System;
using System.Reflection;
class MyClass
{
public string MyProperty { get; set; }
}
class Program
{
static void Main(string[] args)
{
MyClass obj = new MyClass();
obj.MyProperty = "Hello, World!";
// 使用BindingFlags参数来忽略大小写
PropertyInfo property = obj.GetType().GetProperty("myproperty", BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
if (property != null)
{
Console.WriteLine(property.GetValue(obj));
}
else
{
Console.WriteLine("Property not found");
}
}
}
上述代码会输出"Hello, World!",尽管属性名是以小写形式传递给GetProperty方法的。
请注意,使用BindingFlags.IgnoreCase可能会导致性能下降,因为它需要在所有可能的属性名称上进行比较。因此,只有在确实需要忽略大小写时才使用它。
原文地址: https://www.cveoy.top/t/topic/i7me 著作权归作者所有。请勿转载和采集!