Я хочу создать экземпляр System.Net.IPEndPoint
с Spring.Net. Вот мой 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.Net.IPAddress] для требуемого типа [System.Int64] свойства ".
IPEndPoint имеет два конструктора:
public IPEndPoint(long address, int port);
public IPEndPoint(IPAddress address, int port);
Это кажется, что весна использует первый конструктор, который на самом деле плохая идея.
Итак, как я могу сказать весне, что он должен использовать второй конструктор?
Update:
Я понял, как превратить 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 использует другой конструктор. Что это!?
Благодарим вас, вы правы, я попрошу ребят из Microsoft напрямую. Я просто подумал, потому что здесь есть похожие вопросы: https://stackoverflow.com/questions/779604/is-a-separate-visual-studio-license-required-for-a-build-machine. Я мог бы получить ответ слишком. – Portikus
Здесь вы можете получить ответы. Возможно, даже вполне правильные ответы. Но они все равно выходят за рамки сайта ... поэтому я согласен: лучше спросите людей в MS. Когда они что-то не так ... тогда они это сделали ;-) – GhostCat