2016-09-28 9 views
1

Spring.NetでSystem.Net.IPEndPointをインスタンス化したいと思います。 は、ここに私のXMLコードです:Spring.Netで同じ量のパラメータで多くのコンストラクタを持つ型をインスタンス化する方法

<object id="MulticastAddress" type="System.Net.IPAddress" factory-method="Parse"> 
    <constructor-arg value="239.239.239.1"/> 
</object> 
<object id="DestinationEndPoint" type="System.Net.IPEndPoint"> 
    <constructor-arg name="address" ref="MulticastAddress"/> 
    <constructor-arg name="port" value="2010"/> 
</object> 

しかし、これは追加情報をSpring.Core.TypeMismatchException原因:「」[System.Int64]プロパティに必要な型に[可能System.Net.IPAddress]型のプロパティ値を変換できません。

IPEndPointは、2つのコンストラクタがあります

public IPEndPoint(long address, int port); 
public IPEndPoint(IPAddress address, int port); 

を春は実際に悪い考えである最初のコンストラクタを使用しているようです。

これで、2番目のコンストラクタを使用する必要があることをどのように春に伝えることができますか?

アップデート:私は長い間にたIPAddressを変換する方法を考え出し

<object id="DestinationEndPoint" type="System.Net.IPEndPoint"> 
    <constructor-arg name="address" expression="T(System.Net.IPAddress).Parse('239.239.239.1')"/> 
    <constructor-arg name="port" value="2010"/> 
</object> 

しかし、今、私は例外が発生しました:型のプロパティ値を変換できません[System.Int64]プロパティ ''に対して必要な型[System.Net.IPAddress]に変換します。

今や、Springは他のコンストラクタを使用しているようです。それは何ですか!?

答えて

1

私は自分自身で解決策を見つけました。 Spring.Netは、コンストラクタが渡された引数に適合しない場合、この例外をスローします。しかし、Spring.Netはこの例外を後でキャッチし、次のコンストラクタを試しています。だから私の問題は、VisualStudioにこの例外によって壊れてはならないことを伝えなければならないということでした。

+0

ありがとう、ありがとう、私はマイクロソフトから直接人に尋ねます。私はちょうどここに関連する質問があるので、私は考えた:https://stackoverflow.com/questions/779604/is-a-separate-visual-studio-license-required-for-a-build-machine私は答えを得ることができたあまりにも。 – Portikus

+1

ここで回答を得ることができます。たぶん、完全に正しい答えです。しかし、彼らはまだサイトの範囲外になるだろう...私は同意する:より良いMSに尋ねる。彼らはあなたが何か間違っているとき...彼らはそれをやった;-) – GhostCat

関連する問題