2012-04-04 5 views
0

私は動的にキャストされたクラスからクラスメンバの値を取得しようとしていますが、その子クラスメンバの値を見つけることができません。
今はTotalWeightメンバーのプロパティを取得していますが、AnotherClass.ChildのようなAnotherClassの子メンバープロパティを取得したいと考えています。どのようにそれらのメンバーを得ることができますか?動的にキャストされたクラスから子メンバーの値を取得する方法は?

string ClassName="something"; 
Type types = Type.GetType(ClassName, false); 
var d = from source in types.GetMembers().ToList() 
     where source.MemberType == MemberTypes.Property 
     select source; 

List<MemberInfo> members = d.Where(memberInfo => 
            d.Select(c => c.Name) 
            .ToList() 
            .Contains(memberInfo.Name)) 
          .ToList(); 

PropertyInfo propertyInfo; 
object value; 
foreach (var memberInfo in members) 
{ 
    propertyInfo = typeof(T).GetProperty(memberInfo.Name); 
    if (myobj.GetType().GetProperty(memberInfo.Name) != null) 
    { 
    value = myobj.GetType() 
       .GetProperty(memberInfo.Name) 
       .GetValue(myobj, null); 
    //how to get child members value here? 


    } 
} 

//Where class something has member 

public class something 
{ 
    private decimal _totalWeight;  
    private Anotherclass _another; 
    public decimal TotalWeight 
    { 
    get 
    { 
     return this._totalWeight; 
    } 
    set 
    { 
     this._totalWeight = value; 
    } 
    } 

    public Anotherclass Another 
    { 
    get 
    { 
     return this._another; 
    } 
    set 
    { 
     this._another= value; 
    } 
    }  
} 

答えて

0

あなたのプロパティのタイプを取得し、そのタイプのコードの開始時と同じようにすることができます。

+0

私はプロパティタイプではありません。子クラスの値を取得するまでです –

関連する問題