日期:2014-05-19  浏览次数:20900 次

关于类型实例话的问题
public   class   TradeItemDocumentType  
{
               

public   EntityIdentificationType   tradeItemDocumentIdentification;
               

public   TradeItemType   tradeItem;
               

public   ExtensionType   extension;
}


我有这样的一个类,请问大家,有什么方法,能用程序自动把该类下的属性都实例化吗?比如:
方法1:
TradeItemDocumentType   t   =   new   TradeItemDocumentType();
t.tradeItem   =   new   TradeItemType();
t.tradeItemDocumentIdentification   =   new   EntityIdentificationType();
t.extension   =   new   ExtensionType()

可以实例化该类下的所有实例。

现在我不能用上面的方法,当我
TradeItemDocumentType   t   =   new   TradeItemDocumentType();

以后,自动的遍历t下的所有的成员属性,然后自动实例。。
请大虾指点。

------解决方案--------------------
Type t = this.GetType();

System.Reflection.FieldInfo[] fis = t.GetFields();
foreach( FieldInfo fi in fis )
{
Type temp = fi.FieldType;
object otemp = System.Activator.CreateInstance( temp , true );
fi.SetValue( this , otemp );

}

------解决方案--------------------
Mark一下