OHyMoS.NET Class Library

OhAssembly クラス

OHyMoS.NETが要素モデルと動的にリンクする機能を提供するクラスです。

この型のすべてのメンバの一覧については、 OhAssembly メンバを参照してください。

System.Object
   OhymosNet.OhAssembly

public class OhAssembly

解説

具体的には、 .NETのリフレクション機能を提供するクラスAssemblyを用いて、 ディクショナリ _elementAssemblyDicに、 OhymosNet.dllと ユーザ環境変数 OHYMOS_LIB に設定されたディレクトリに格納されている アセンブリとその中に含まれるクラスを registerAssembly() を用いて登録します。 そして、_elementAssemblyDic内を検索し、 構造定義ファイルから与えられるクラス名と一致するクラスを見つけ出せれば そのクラス名から

を用いてオブジェクトを生成します。

また、OHyMoS.NETに含まれる要素モデル(ユーザの用意するものも含む)の 一覧を表示する機能も提供します。

使用例

例えば、下のように利用します。利用の際はOhAssemblyを用いるだけで、 クラスは登録されます。

string className = "SampleClass";
Assembly a;

// OhAssemblyのオブジェクトを生成
OhAssembly ohymosAssembly = OhAssembly.Default;

// 登録したディクショナリ内で、与えられたクラス名と一致するクラスを検索
if (ohymosAssembly.ElementAssemblyDic.TryGetValue("OhymosNet." + className, out a))
{
    // 見つかれば型を取得し、オブジェクトを生成
    _elements[id] = OhElement.create(a.GetType("OhymosNet." + className, true));
    _elements[id].init(objectName, objectNumber, sr);
}
else
    // 見つからなければ、例外をスロー
    throw new TypeLoadException("\"" + className + "\"" + " does not exist in OHyMoS.NET.");

必要条件

名前空間: OhymosNet

アセンブリ: OhymosNet (OhymosNet.dll 内)

参照

OhAssembly メンバ | OhymosNet 名前空間