2

私のパセリ コンテナーでは、ディクショナリ (flash.utils.Dictionary) を含むオブジェクト「A」をインスタンス化しています。

パセリを使用してこの辞書を作成し、「A」に注入したいと思います。このディクショナリ ペア構造は次のとおりです: key=オブジェクト 'B' の ID、値='B' ここで、オブジェクト 'B' は、parsley を使用して定義および作成されたオブジェクトでもあります (つまり、基本的にペア構造は、オブジェクト ID をキーとして、オブジェクト自体を値として)。

今、私は「A」と「B」を作成するのに問題はありませんが、パセリを使用してこの辞書を作成したり、「A」に注入したりする正しい方法を見つけることができないようです。

どんな助けでも大歓迎です!

前もってありがとう、ヨゲフ

4

1 に答える 1

3

context.mxml でこれを行うことができます。

<mx:Object xmlns:mx="http://www.adobe.com/2006/mxml" 
           xmlns="http://www.spicefactory.org/parsley">

    <mx:Script>
            <![CDATA[
                import com.example.ObjectToInjectX; 
                import com.example.ObjectToInjectY;
                import com.example.MyExampleObject;

            ]]>
    </mx:Script>

    <!-- The class to inject the map into, just declare -->
    <Object type="{MyExampleObject}" id="myExampleObject" />

    <!-- Objects to inject into the Dictionary -->
    <Object type="{ObjectToInjectX}" id="objectToInjectX" />
    <Object type="{ObjectToInjectY}" id="objectToInjectY" />

    <!-- The Dictionary -->
    <Object type="{Dictionary} id="myDictionaryToInject" />
        <DynamicProperty name="itemX" idRef="objectToInjectX" />
        <DynamicProperty name="itemY" idRef="objectToInjectY" />
    </Object>

</mx:Object> 

次に、注入するクラスで次のことを行うだけです。

public class MyExampleObject
{
     private var _myDictionaryToInject:Dictionary;

     [Inject(id="myDictionaryToInject")]
     public function set myDictionaryToInject( myDictionaryToInject:Dictionary ):void
     {
            _myDictionaryToInject = myDictionaryToInject;
     }
}
于 2011-09-03T15:24:36.040 に答える