Я могу препятствовать тому, чтобы определенный datamember был десериализован?

У меня есть datacontract как это

[DataContract]
class MyDC 
{
    [DataMember]
    public string DM1;

    [DataMember]
    public string DM2;

    [DataMember]
    public string DM3;
}

и иногда я хочу препятствовать тому, чтобы DM2 был десериализован, будучи возвращенным из OperationContract. Что-то вроде этого:

[OperationContact]
public MyDC GetMyDC()
{
    MyDC mdc = new MyDC();

    if (condition)
    {
        // Code to prevent DM2 from being deserialized  
    }

    return mdc;
}

Я мог всегда делать новый DataContract, который имеет только DM1 и DM3, и генерируйте это от экземпляра MyDC, но я хочу видеть, возможно ли программно удалить DM2. Действительно ли это возможно? Как?

5
задан floatingfrisbee 29 July 2010 в 00:10
поделиться