C# 使用反射获取PropertyInfo,只想看到具有mutator的访问器
使用反射,我只想检索同时具有C# 使用反射获取PropertyInfo,只想看到具有mutator的访问器,c#,system.reflection,C#,System.reflection,使用反射,我只想检索同时具有get和set方法的属性,而忽略仅具有get方法的属性。我想做的是给用户一个他/她可以更改的变量列表,因此向他们显示只有get方法的属性是误导性的 给定下面的代码,用户将只显示Name。或者我可以同时给他们看,但是灰色的UniqueID,这样他们就知道他们无法更改它 public Int64 UniqueID { get { return this.uniqueID; } } public String Name { get { return thi
get
和set
方法的属性,而忽略仅具有get
方法的属性。我想做的是给用户一个他/她可以更改的变量列表,因此向他们显示只有get
方法的属性是误导性的
给定下面的代码,用户将只显示Name
。或者我可以同时给他们看,但是灰色的UniqueID
,这样他们就知道他们无法更改它
public Int64 UniqueID
{
get { return this.uniqueID; }
}
public String Name
{
get { return this.name; }
set { this.name = value; }
}
背景信息:我正在使用C#4.0。您可以使用
CanRead
和CanWrite
属性:
Type type = ...
var readWriteProps = type.GetProperties()
.Where(p => p.CanRead && p.CanWrite);
请注意,上面的查询只查找具有公共访问器的公共属性。我认为您要查找的属性是
PropertyInfo.CanWrite
,这可以通过以下方式实现,以检查Get和Set,如下所示:
if (propInfo.CanWrite && propInfo.CanRead)
这很好用,谢谢。我会投你一票,但我没有足够的代表权这么做。