Есть вот такой интерфейс :
namespace Server.Definitions {
[XmlRpcUrl("test.rem")]
public interface IUser
{
string Test { get; set; }
[XmlRpcMethod("Ping")]
bool Ping();
}
}
И его реализация :
public class UserManagement : MarshalByRefObject, IUser
{
string test = "teststring";
public string Test { get { return test; } set { test = value; } }
public bool Ping() { Console.WriteLine("I'm pinged!"); return true; }
}
И тестовая программа :
IUser svr = (IUser)Activator.GetObject(typeof(IUser), "http://127.0.0.1:1234/test.rem");
svr.Ping();
Trace.WriteLine(svr.Test);
Которая крашится на попытке доступа к
Test, а Ping() работает без проблем. Разбирал бинарник reflector'ом, там метод get_Test есть.
Ошибка : "Additional information: Server returned a fault exception: [0] unsupported method called: get_Test"
Здравствуйте, kartun, Вы писали:
K>Есть вот такой интерфейс :
K>K>namespace Server.Definitions {
K> [XmlRpcUrl("test.rem")]
K> public interface IUser
K> {
K> string Test { get; set; }
K> [XmlRpcMethod("Ping")]
K> bool Ping();
K> }
K>}
K>
может для свойства Test тоже надо задать атрибут типа XmlRpcMethod
Здравствуйте, toulon, Вы писали:
T>может для свойства Test тоже надо задать атрибут типа XmlRpcMethod
Эх, если бы все было так очевидно

error CS0592: Attribute 'XmlRpcMethod' is not valid on this declaration type. It is only valid on 'method' declarations.
Здравствуйте, kartun, Вы писали:
K>Здравствуйте, toulon, Вы писали:
T>>может для свойства Test тоже надо задать атрибут типа XmlRpcMethod
K>Эх, если бы все было так очевидно
error CS0592: Attribute 'XmlRpcMethod' is not valid on this declaration type. It is only valid on 'method' declarations.
ну я же написал, что что-нибудь
типа XmlRpcMethod

то есть например XmlRpcProperty, нет там такого? если нет, то возможно вызов свойств вообще не поддерживается
Здравствуйте, kartun, Вы писали:
K>Эх, если бы все было так очевидно 
Наобум (c XmlRpc не работал):
namespace Server.Definitions {
[XmlRpcUrl("test.rem")]
public interface IUser
{
string Test { [XmlRpcMethod]get; [XmlRpcMethod]set; }
[XmlRpcMethod("Ping")]
bool Ping();
}
}
?
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, kartun, Вы писали:
K>>Эх, если бы все было так очевидно
S>Наобум (c XmlRpc не работал):
S>S>namespace Server.Definitions {
S> [XmlRpcUrl("test.rem")]
S> public interface IUser
S> {
S> string Test { [XmlRpcMethod]get; [XmlRpcMethod]set; }
S> [XmlRpcMethod("Ping")]
S> bool Ping();
S> }
S>}
S>
S>?
ну собственно так и оказалось :
public string Test {
[XmlRpcMethod("get_Test")]
get { return test; }
[XmlRpcMethod("set_Test")]
set { test = value; } }
Я думал есть какой-то более простой способ, хотя бы целиком аксессор объявить. Спасибо за помощь.
Здравствуйте, kartun, Вы писали:
K>Я думал есть какой-то более простой способ, хотя бы целиком аксессор объявить. Спасибо за помощь.
Всегда пожалуйста. Удачи