Is DataContract attributes required for WCF

前端 未结 4 1396
情书的邮戳
情书的邮戳 2020-11-30 06:04

I\'m writing WCF service and his client. I want to send/receive objects of my custom classes, between service and client.

I have 3 modules

  • WCF service
相关标签:
4条回答
  • 2020-11-30 06:09

    If I recall correctly(IIRC), if you don't use formal data-contract markers, it defaults to acting like a field-serializer. This will work, but is less easy to version, since private changes can break the client/server. IMO you should always formally decorate WCF types with the data-contract/data-member attributes. It will work without them, but for the wrong reasons (IIRC, originally it didn't work without formal markers).

    0 讨论(0)
  • 2020-11-30 06:10

    "Is DataContract attributes required for WCF"

    Technically, no. This is dependent on whether you use the DataContractSerializer or not (which is the default on many bindings).

    There are other options:

    1. Consider alternative serializers
    2. Try using Data Contract Surrogates (attributes are still required somewhere, but it does potentially mean u can leave your class untouched, if thats relevant)
    3. Rely on the serialization defaults for when you serialize classes without Data Contract attributes
    0 讨论(0)
  • 2020-11-30 06:21

    You can use several serializaton techniques with WCF, it's one of the nice adaptable things about it. Have a look:

    http://msdn.microsoft.com/en-us/magazine/cc163569.aspx

    0 讨论(0)
  • 2020-11-30 06:30

    It's not required to use DataContract attributes, your service will work just fine without them.

    Having said that, I really don't think having your service and client share a class library is the best design approach. It would be a lot clearer if you'd expose your types through DataContracts.

    What would happen when someday, someone wants to consume your service but don't have access to the shared class library?

    0 讨论(0)
提交回复
热议问题