0

クラス「従業員」があり、次のメンバーがいます。

//[membername,type]
[Name,string]
[DOB,DateTime]
[DateOfHire,DateTime]
[TerminationDate,DateTime?]
[AddressChanges,List<string>]

ここでは、コレクションタイプのものを除くすべてのプロパティを反映して取得する必要があります。

この例では、AddressChangesを除いて、すべてのメンバーを取得する必要があります。

ありがとう。

4

2 に答える 2

3

「コレクション」の意味に応じて、次のように機能します。

var notCollectionProperties =
    typeof(Employee)
        .GetProperties(BindingFlags.Public|BindingFlags.Instance)
        .Where(prop => !typeof(ICollection).IsAssignableFrom(prop.PropertyType));

より一般的には、IEnumerableではなくを使用することをお勧めしますICollection

于 2012-09-07T11:22:02.173 に答える
0

リフレクションを使用してプロパティを列挙し、コレクションタイプのプロパティを除外します。例えば:

Type myType = typeof(TargetClass);
foreach(PropertyInfo propertyInfo in myType.GetProperties())
{
    if(propertyInfo.PropertyType is ...)
    {
        // Handle cases 
    }    
}
于 2012-09-07T11:18:30.583 に答える