微妙に仕様変更し、Kairyu.DCEngine ver0.5.0.1 となりました。
大きな変更点
オブジェクトプロパティ廃止
オブジェクトプロパティは廃止し、リテラルプロパティに統一。 つまり、オブジェクトでは値を持たずに全てリテラルに展開してアーカイブを取ります。
変更した理由は、オブジェクトだとデータベースへのマッピング先が後々面倒なことになるからです。 データベースも結局のところリテラル値しか保存できませんから。 あとは削除するとき、主キーのリテラル値が必要になるのですが、主キープロパティの型がカスタムクラスの場合、リテラル値を持ってないと削除処理ができないってのが大きいです。
考え方を変えたら、クラスもすっきりしました。
細かい変更点
拡張メソッド
拡張メソッドの方が自然なメソッドは拡張メソッドに移行しました。
拡張メソッドが増えたことにより以下のように見直し。
フレームワーク内で完結するメソッドなので、外部公開する必要はあまりないですが、名前空間を切ることで明示的に宣言しない限り利用できないものとします。
Imports Kairyu.DCEngine.Extensions
'クラス定義を取得する
Dim c As Hoge
Dim def = c.GetType.ToClassDefinision
こんなとこですかね。