2009-12-31 4 views
0

У меня возникла проблема с передачей объекта по какой-либо причине, и я не уверен, почему. Я получаю ссылку на объект, не установленную на экземпляр ошибки объекта.Передача пользовательского объекта в службу WCF Windows Workflow

По существу моего клиентского приложения я сделать вызов к работе Windows ...

код клиента

Workflow1Client client = new Workflow1Client(); 
ACME.Order newOrder = new ACME.Order(); 

newOrder.Property1 = "xyz"; 
//set all the other properties 

string status = client.GetData(newOrder); 
//**This is where object reference error occurs** 

Proxy Ожидая

public string GetData(ACME.Order NewOrder) 
{ 
    return base.Channel.GetData(NewOrder); 
} 

Workflow код

[ServiceContract] 
public interface IWorkflow1 
     { 
       [OperationContract] 
     string GetData(ACME.Order NewOrder); 
     // TODO: Add your service operations here 
    } 

Буду признателен за любую помощь по этому вопросу. Кроме того, помимо этого вопроса отправляется хорошая практика Object (ACME.Order) или я должен попытаться решить эту проблему по-другому?

Благодаря

ответ

1

я столкнулся с этим сам, и в моем случае это была ошибка сериализации на специальном объекте. Чтобы иметь возможность отправлять пользовательский объект через WCF, он должен иметь атрибут [Serializable]. Чтобы проверить, можете ли вы сериализовать объект в файле XML. Если это не удастся, передача WCF не будет работать.

Надеюсь, что это поможет.

+0

Спасибо Jerb Я смог получить эту работу. Это связано с ServiceOperationInfo в моем рабочем процессе. – Kuruption

+0

Вы также можете использовать атрибут [DataContract] в своих классах данных, а также добавлять атрибуты [DataMember] к свойствам класса данных, который вы хотите включить в сериализацию. Это обеспечивает более тонкий контроль над серией. – ajawad987

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