2

API の web.config からオブジェクトのコレクションを作成しようとしています。これらのオブジェクトのすべてのプロパティが、オブジェクト内の別のカスタム オブジェクトである 1 つとは別に、正しく引き出されています。

ここで、convertible 属性をクラスに追加すると、すべて正常に動作しますが、ドメインに Castle.windsor への外部参照を追加することで、Onion アーキテクチャが壊れます。変換可能な属性を持つ複雑なパラメーターについては、こちらで詳しく説明しています

web.config の城セクションの Xml (毛羽を取り除いた状態) は次のようになります。

<component id="uniqueId" type="Project.Domain.Objects.Object, Project.Domain">
    <parameters>
    <Id>1</Id>
    <Name>name1</Name>
    <geofenceLocation>
      <parameters>
      <latitude>12</latitude>
      <longitude>44</longitude>
      <radius>100</radius>
      </parameters>
    </geofenceLocation>
    </parameters>
  </component>

convertible 属性を追加せずにシリアル化しようとしているオブジェクトは geofenceLocation オブジェクトです。Api に Convertible 属性を挿入できるように、オブジェクトに属性を挿入する方法はありますか、またはこれを解決する他の方法はありますか?

御時間ありがとうございます。

4

1 に答える 1

2

次のように、geofencelocation を新しいコンポーネントとして処理できます。

<component id="geofenceLocation" type="your.type.here, your.assembly">
    <parameters>
      <latitude>12</latitude>
      <longitude>44</longitude>
      <radius>100</radius>
    </parameters>
</component>

そして、次のような他のコンポーネントからの参照:

<component id="uniqueId" type="Project.Domain.Objects.Object, Project.Domain">
    <parameters>
      <Id>1</Id>
      <Name>name1</Name>
      <geofenceLocation>${geofenceLocation}</geofenceLocation>
    </parameters>
</component>

それが役に立てば幸い。さよなら

于 2013-08-08T10:20:56.610 に答える