Нет доступа к аксессорам через xmlrpc
От: kartun Россия kartun.livejournal.com
Дата: 13.10.10 15:10
Оценка:
Есть вот такой интерфейс :

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"
xmlrpc
Re: Нет доступа к аксессорам через xmlrpc
От: toulon Россия  
Дата: 14.10.10 06:21
Оценка:
Здравствуйте, 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
Re[2]: Нет доступа к аксессорам через xmlrpc
От: kartun Россия kartun.livejournal.com
Дата: 14.10.10 07:37
Оценка:
Здравствуйте, toulon, Вы писали:
T>может для свойства Test тоже надо задать атрибут типа XmlRpcMethod

Эх, если бы все было так очевидно error CS0592: Attribute 'XmlRpcMethod' is not valid on this declaration type. It is only valid on 'method' declarations.
Re[3]: Нет доступа к аксессорам через xmlrpc
От: toulon Россия  
Дата: 14.10.10 07:52
Оценка:
Здравствуйте, 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, нет там такого? если нет, то возможно вызов свойств вообще не поддерживается
Re[3]: Нет доступа к аксессорам через xmlrpc
От: Sinix  
Дата: 14.10.10 08:24
Оценка: 3 (1)
Здравствуйте, kartun, Вы писали:

K>Эх, если бы все было так очевидно

Наобум (c XmlRpc не работал):
namespace Server.Definitions {
    [XmlRpcUrl("test.rem")]
    public interface IUser
    {
        string Test { [XmlRpcMethod]get; [XmlRpcMethod]set; }

        [XmlRpcMethod("Ping")]
        bool Ping();
    }
}

?
Re[4]: Нет доступа к аксессорам через xmlrpc
От: kartun Россия kartun.livejournal.com
Дата: 14.10.10 08:41
Оценка:
Здравствуйте, 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; } }


Я думал есть какой-то более простой способ, хотя бы целиком аксессор объявить. Спасибо за помощь.
Re[5]: Нет доступа к аксессорам через xmlrpc
От: Sinix  
Дата: 14.10.10 08:43
Оценка:
Здравствуйте, kartun, Вы писали:

K>Я думал есть какой-то более простой способ, хотя бы целиком аксессор объявить. Спасибо за помощь.


Всегда пожалуйста. Удачи
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.