Expose custom type through WCF service
Posted on 2007-10-20
I've got a WCF service and client. I'd like the service to expose a custom structure used to return some data to the client of the form:
Public Structure TRANSACTION_RESPONSE
Dim ar As AUTHORIZATION_RESPONSE
Dim Fields() As String
AUTHORIZATION_RESPONSE is an enum and Fields is an array of strings.
The service does not define this structure however, it is defined that another library (IS.Services) which is included as a reference to the service. I get this error when I create an interface and method on the service which take string parameters and return a parameter of type TRANSACTION_RESPONSE:
Type 'IS.Services+TRANSACTION_RESPONSE' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute."
The question is, how can I add the DataContractAttribute markers to a library that is used as a reference within the service. It would be easy if the service defined the structure itself - but it does not.
This is the WCF interface definition:
public interface IServices
'IS.Services.TRANSACTION_RESPONSE AddTransaction(string sMain);