当我没有从域服务返回派生类型时,为什么仍然需要'KnownTypeAttribute'?

时间:2012-04-27 04:24:59

标签: wcf wcf-ria-services

我的命名空间中有BaseModelChildModel。我在DomainService中有操作返回它们,并且获得了一个异常,称“将KnownTypeAttribute”应用于基类。我申请了,它有效。

但是,如果我没有在我的DomainService中公开任何返回DerivedType的操作,那么我也必须在BaseModel上应用此属性,否则我会得到异常。

有人可以解释为什么会这样吗?

public class MyService: DomainServiceBase
{
    public BaseModel Get()
    {
        return new BaseModel();
    }
}

1 个答案:

答案 0 :(得分:0)

如果WCF收到使用派生类型的消息,则会发生这种情况。在这种情况下,由于您尚未使用已知类型属性,因此WCF将不知道在哪里可以找到此子域类型,并且会发生异常。