2009-04-20 13 views
0

私はこのようなxmlを持っていますXmlから型を作成する

私はxmlを解析し、spscifiedプロパティを持つ動的クラスを作成します。私はsystem.reflection.emit名前空間でそれを行うためのいくつかのポインタを見つけましたが、私はいつも型を定義するためにアセンブリとモジュールを作成する必要がありますか?私はちょうど型を作成し、プロパティを定義できますか?

<Root> 
<type> 
<name>mytype</name> 
<properties> 
    <property> 
    <name>property1</name> 
    <value>2</value> 
    <datatype>int</datatype> 
    </property> 
    <property> 
    <name>property3</name> 
    <value>2.5</value> 
    <datatype>double</datatype> 
    </property> 
    <property> 
    <name>property4</name> 
    <value>hello world</value> 
    <datatype>string</datatype> 
    </property> 
</properties> 
</type> 
</Root> 
+0

好奇心の高まりから、.NETのXMLバインディング(JAXB)用のJavaアーキテクチャに似たフレームワークがありますか? – AndreiM

答えて

0

タイプは常にアセンブリに存在する必要があります。そのため、アセンブリをメモリに作成する必要があります。 CodeDomモデルを使用して型を定義するのが少し楽になるかもしれません。

+0

ありがとう、thats私が思ったもの... –

+0

誰かが例を挙げることができますか? –

0

This exampleは、AssemblyBuilderを作成し、次にModuleBuilderを作成してからTypeBuilderを作成します。そこからプロパティを定義する必要があります。 getおよびsetアクセサに一致する&パラメータを返すメソッドを作成する必要があります。この例では、格納用にフィールドを使用する標準のget/set操作の基本的な実装を示しています。それ以上のものが必要な場合は、起動するためにCILを学ばなければなりません。

すべて完了したら、今後の使用のために保存する場合は、TypeBuilder.CreateTypeとAssemblyBuilder.Saveを呼び出します。

アセンブリ作成に関する不安については、ダイナミックアセンブリ&モジュールを定義するのはそれほど大きな問題ではありません。これを行うのはほんの数行だけです。

関連する問題