WCF - Return object without serializing?

Posted by Mayo on Stack Overflow See other posts from Stack Overflow or by Mayo
Published on 2010-12-29T22:59:44Z Indexed on 2010/12/30 14:53 UTC
Read the original article Hit count: 181

Filed under:
|

One of my WCF functions returns an object that has a member variable of a type from another library that is beyond my control. I cannot decorate that library's classes. In fact, I cannot even use DataContractSurrogate because the library's classes have private member variables that are essential to operation (i.e. if I return the object without those private member variables, the public properties throw exceptions).

If I say that interoperability for this particular method is not needed (at least until the owners of this library can revise to make their objects serializable), is it possible for me to use WCF to return this object such that it can at least be consumed by a .NET client?

How do I go about doing that?

Update: I am adding pseudo code below...

// My code, I have control

[DataContract]
public class MyObject
{
  private TheirObject theirObject;

  [DataMember]
  public int SomeNumber
  {
    get { return theirObject.SomeNumber; } // public property exposed
    private set { }
  }
}

// Their code, I have no control

public class TheirObject
{
  private TheirOtherObject theirOtherObject;

  public int SomeNumber 
  { 
    get { return theirOtherObject.SomeOtherProperty; }
    set { // ... }
  }
}

I've tried adding DataMember to my instance of their object, making it public, using a DataContractSurrogate, and even manually streaming the object. In all cases, I get some error that eventually leads back to their object not being explicitly serializable.

© Stack Overflow or respective owner

Related posts about wcf

Related posts about serialization