2

在我的欧芹容器中,我正在实例化一个包含字典 (flash.utils.Dictionary) 的对象“A”。

我想用欧芹创建这个字典并将其注入“A”。这个字典对结构是:key=id of object 'B', value='B' 其中对象'B'也是一个使用欧芹定义和创建的对象(所以基本上pairs结构和对象id作为键和对象本身作为值)。

现在,我创建“A”和“B”没有问题,但似乎找不到使用欧芹创建此字典的正确方法,也无法将其注入“A”。

非常感谢任何帮助!

在此先感谢, Yogev

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 回答