2012-03-29 14 views
0

私はFlexモバイルプロジェクトでParsleyを使用しています。私は複数の宛先サービスを持っていますが、別の宛先サービスをconfig.xmlファイルに追加する方法については、さらに多くのリソースを見つけることができません。ファイルは以下の通りです:場合Parsleyを使用したFlexモバイル

<objects 
    xmlns="http://www.spicefactory.org/parsley" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.spicefactory.org/parsley 
     http://www.spicefactory.org/parsley/schema/2.4/parsley-core.xsd"> 


    <object type="mx.rpc.remoting.RemoteObject" id="genBUS"> 
     <property name="destination" value="genBUS"/> 
     <property name="endpoint" value="http://localhost:8080/ClinASM/messagebroker/amf" /> 
    </object> 
</object> 

私は別の

<object type="mx.rpc.remoting.RemoteObject" id="anotherBUS"></objects> 

を作成し、それは私が複数のリモートオブジェクトを定義していると文句を言い

[Inject(id='genBUS')] 
public var genBUS:RemoteObject; 

を行うとき。どのように機能するのですか?別の宛先サービスを挿入するにはどうすればよいですか? config.mxml:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Object 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns="http://www.spicefactory.org/parsley"> 


    <Object id="genBUS" type="mx.rpc.remoting.RemoteObject"> 
     <Property name="destination" value="genBUS" /> 
     <Property name="endpoint" value="http://localhost:8080/ClinASM/messagebroker/amf" /> 
    </Object> 

    <Object id="karBUS" type="mx.rpc.remoting.RemoteObject"> 
     <Property name="destination" value="karBUS" /> 
     <Property name="endpoint" value="http://localhost:8080/ClinASM/messagebroker/amf" /> 
    </Object> 


</mx:Object> 
+0

は、それが「ID」のメタデータを拾っていないと、種類によって代わりのIDで注入しようとしているように見えます。 – RIAstar

+0

はい、私は知っていますが、ここでconfig.xmlで複数のリモートオブジェクトを定義する方法はありますか? –

+0

ちょうどあなたのように、私が知っている情報から考えることができるのは、IDを持つXMLベースの設定にバグがある可能性があるということです。 MXMLと同じ設定を書いてみて、何が起こるか見てみましょう。注記:IDベースの注入を使用することはあまり良い習慣ではありません([Parsley docs](http://www.spicefactory.org/parsley/docs/2.1/manual/)セクション4.4と4.5を参照) – RIAstar

答えて

2

名前ベースの依存関係を作成するための良い練習をするconsidererされていないIDで注入することが

UPDATE ...パセリについてのより多くの知識を得るために素晴らしいことです。名前を変更するか、タイプミスを犯すと、アプリケーションが壊れてしまい、デバッグが難しくなります。

一般的に、回避するようにしてください。パースレーの文書explain how to do this。私は単純な例を追加して、複数のRemoteObjectでそのテクニックをどのように使うのかを示します。

<fx:Object xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:p="http://www.spicefactory.org/parsley"> 

<fx:Script> 
    import path.to.service.GenBusDelegate; 
    import path.to.service.KarBusDelegate; 
</fx:Script> 

<fx:Declarations> 
    <fx:String id="gateway">http://localhost:8080/ClinASM/messagebroker/amf</fx:String> 

    <s:RemoteObject id="genBus" destination="genBus" endpoint="{gateway}" /> 
    <s:RemoteObject id="karBus" destination="karBus" endpoint="{gateway}" /> 

    <p:Object type="{GenBusDelegate}"> 
     <p:ConstructorArgs> 
      <p:ObjectRef idRef="genBus" /> 
     </p:ConstructorArgs> 
    </p:Object> 

    <p:Object type="{KarBusDelegate}"> 
     <p:ConstructorArgs> 
      <p:ObjectRef idRef="karBus" /> 
     </p:ConstructorArgs> 
    </p:Object> 

</fx:Declarations> 
</fx:Object> 

か、コンストラクタ引数を使用しない場合:

<p:Object type="{GenBusDelegate}"> 
     <Property name="remoteObject" idRef="genBus"/> 
    </p:Object> 
+0

path.to.service.GenBusDelegateは、私の自動生成GenBUSサービスクラスと何か異なっていますか?はい、もし私がそのクラスを作成すると仮定? –

+0

原因:内にタグを含めると、GenBUSのこのようなパラメータは表示されません。私の自動生成GenBUS.asサービスクラス –

+0

@lbstrはい、 'path.to.service.GenBusDelegate'は単なる例です。私は自動生成されたクラスがあるかどうか分からなかったし、どちらのパッケージに入っているのかわからないので、その 'import'ステートメントをGenBusクラスの正しいパスに置き換えるか、インポートを破棄して'type'属性の全体のパス: ' ' – RIAstar

関連する問題