反射
请问如何通过反射调用DATASET?
谢谢
------解决方案--------------------首先定义两个实体类:OFFICEData,UserData
--------------------------------------
OFFICEData:
[System.ComponentModel.DesignerCategory( "Code ")]
[SerializableAttribute]
public class OFFICEData: DataSet,ISerializable
{
public const string T_OFFICE_OFFICEID= "OFFICEID ";
public const string T_OFFICE_CODENO= "CODENO ";
public const string T_OFFICE_SPELLNO= "SPELLNO ";
public const string T_OFFICE_CUSTOMNO= "CUSTOMNO ";
public const string T_OFFICE_STROKENO= "STROKENO ";
public const string T_OFFICE_OFFICE= "OFFICE ";
public const string T_OFFICE_DISEASEAREA= "DISEASEAREA ";
public const string T_OFFICE_BEDAMOUNT= "BEDAMOUNT ";
public const string T_OFFICE_LIMITFUND= "LIMITFUND ";
public const string T_OFFICE_OFFICETYPE= "OFFICETYPE ";
public const string T_OFFICE_DEPARTMENT= "DEPARTMENT ";
public const string T_OFFICE_POSITION= "POSITION ";
private DataTable table;
private DataColumn col;
private ArrayList list;
private UserData user = new UserData();
public UserData userData
{
get{return this.user ;}
set{this.user = value;}
}
private OFFICEData(SerializationInfo info, StreamingContext context) : base(info, context)
{
userData=(UserData)info.GetValue( "myData ",typeof(Serialize.UserData));
}
public OFFICEData()
{
BuildDataTables();
}
public void GetObjectData(SerializationInfo info,StreamingContext text)
{
Type t = typeof(DataSet);
MethodInfo mi =t.GetMethod( "System.Runtime.Serialization.ISerializable.GetObjectData ",BindingFlags.Instance |BindingFlags.NonPublic );
mi.Invoke(this,new object[]{info,text});
info.AddValue( "myData ",userData);
}
//构建业务实体类的结构。
private void BuildDataTables()
{
table = new DataTable( "T_OFFICE ");
table.Columns.Add( "OFFICEID ",typeof(System.Decimal));
table.Columns.Add( "CODENO ",typeof(System.String));
table.Columns.Add( "SPELLNO ",typeof(System.String));
table.Columns.Add( "CUSTOMNO ",typeof(System.String));
table.Columns.Add( "STROKENO ",typeof(System.String));
table.Columns.Add( "OFFICE ",typeof(System.String));
table.Columns.Add( "DISEASEAREA ",typeof(System.String));
table.Columns.Add( "BEDAMOUNT ",typeof(System.Decimal));
table.Columns.Add( "LIMITFUND ",typeof(System.Decimal));
table.Columns.Add( "OFFICETYPE ",ty