DataTable次のようにクラスを拡張しました。
class DataTableExtended:DataTable
{
public void specialMethod()
{}
}
XMLノードをこの子クラスに解析したいので、次のようにしようとしました:
public DataTableExtended parseNodeToDataTable()
{
DataSet ds = new DataSet();
XmlNodeReader reader = new XmlNodeReader(this.resultNodes);
ds.ReadXml(reader);
DataTable dt = ds.Tables[1];
DataTableExtended dte=(DataTableExtended) dt;
return dt;
}
を投げていInvalidCastExceptionます。これまで読んだことから、これは親クラスを子クラスにキャストできないためです。それは正確ですか?もしそうなら、引数をDataTableExtended受け入れてDataTableそのテーブルの情報をコピーするようにコンストラクターを書き直すことができることはわかっていますが、これを行うためのより直接的な方法があることを望んでいました。