2013-10-25 3 views
0

У меня есть WCF service работает на моей машине.Почему мой объект возвращает null из службы WCF

[DataContract] добавлен перед классом [DataMember] добавлен перед каждым членом класса.

Я не добавлял [DataMember] перед свойствами класса.

[OperationContract] added before service interface: 

    [OperationContract] 
    MyObject GetMyObject(); 

и реализация услуг:

public MyObject GetXmlFile() 
{ 
    // Bla bla 
    MyObject obj = new MyObject(); 
    MyObject obj = obj.GetAll(); 
    return obj; 
} 

Когда проверить это с помощью отладчика я могу видеть, что объект успешно создан в MyObject obj.GetAll(); Но после этого в основной программе возвращается нуль.

Это, как я вернуть мой объект класса:

public MyObject GetAll() 
{ 
    _xmlPath = xmlPath; 
    _xml = new XmlDocument(); 
    _xml.Load(xmlPath); 
    GetFirstAttributes(); // Fill up my object with details from XML file 
    GetSecondAttributes(); // Fill up my object with details from XML file 
    return this; 
} 

Главная:

 Uri uri = new Uri("http://" + ip + ":8733/MyService"); 
     ServiceReference1.XMLServiceClient service = new ServiceReference1.XMLServiceClient(); 
     service.Endpoint.Address = new EndpointAddress(uri); 
     ServiceReference1.MyObject xml = service.GetXmlFile(); 
+0

Что вы загружая datamembers от? Являются ли объекты в ваших элементах данных созданными в вашем коде или загружены из json/xml/server? –

+0

Что значит? – user1860934

+0

Эта строка: 'MyObject obj.GetAll();' не имеет смысла. Он не компилируется. Пожалуйста, покажите свой реальный код. –

ответ

0

Вы должны установить OperationContract атрибут вашего метода GetXmlFile

+0

Можете ли вы показать мне, как это сделать? – user1860934

+0

Я не могу отправить код –

Смежные вопросы