1

Unity で興味深い問題が発生しています。助けていただければ幸いです。

コンストラクターにオブジェクトの配列を挿入したいのですが、その挿入中に各オブジェクトをコードに関連付けたいと考えています。同じコードを持つオブジェクトが複数存在する可能性があるため、Dictionary を使用できないことに注意してください。

私は基本的に小さなオブジェクトを包含オブジェクトに挿入しようとしています。その後、包含オブジェクトは必要に応じてコードを使用してこれらのオブジェクトにアクセスします。

KeyValuePair を使用しても問題ありません。複合オブジェクトを構築する必要があるかどうかもわかります(以下のように)。私がやりたくないのは、コード/オブジェクト要素のすべての組み合わせを事前に個別に登録することです。注入された各オブジェクトを登録することは気にしません。

私はこのようなことをしたいです(私はそれが有効ではないことを知っています):

<register type="IMyObject" mapTo="MySmallObject1" name="SmallObject1" />
<register type="IMyObject" mapTo="MySmallObject2" name="SmallObject2" />
<register type="IMyObject" mapTo="MySmallObject3" name="SmallObject3" />


<register type="ContainingObject1" name="Name1">
  <constructor>
    <param name="objects">
      <array>
        <value>
          <!-- This could resolve to a KeyValuePair or a composite object -->
          <property name="Code" value = "01" />
          <property name="Operation" >
            <dependency name="SmallObject1" />
          </property>
        </value>
        <value>
          <property name="Code" value = "02" />
          <property name="Operation" >
            <dependency name="SmallObject2" />
          </property>
        </value>
      </array>
    </param>
  </constructor>
</register>

<register type="ContainingObject2" name="Name2">
  <constructor>
    <param name="objects">
      <array>
        <value>
          <property name="Code" value = "01" />
          <property name="Operation" >
            <dependency name="SmallObject3" />
          </property>
        </value>
      </array>
    </param>
  </constructor>
</register>

したがって、最初に含まれるオブジェクトには、コード 01 と SmallObject1、コード 02 と SmallObject2 の 2 つのペアを挿入します。2 つ目は、コード 01 と SmallObject3 のペアが 1 つだけです。コードで型名を解決することにより、"01,SmallObject1" という形式の文字列を取り、それを文字列とオブジェクトに変換できるカスタム型コンバーターを作成できることはわかっています。可能であればそれを回避し、構成でこれらすべてを制御したいと考えていました。

何か案は?

ありがとう!フィル

4

0 に答える 0