2012-04-16 75 views
0

我有一个自定义的ValueObject类型,看起来像这样:WCF数据服务类型转换

public class Token 
{ 
    public string Id { get; set; } 
} 

而且我有我要揭露过OData的,看起来像这样一类:

[DataServiceKey("Name")] 
public class Record 
{ 
    public Token Token { get; set; } 
    public string Name { get; set; } 
} 

我想提供一个自定义的格式化程序/序列化程序/转换器,将我的令牌类型转换为原始字符串。

我不想把令牌到实体只是为了使其与WCF工作的缘故。

这可能吗?

回答

1

令牌并不需要是一个实体 - 它可以是一个复杂的类型与串ID。我不认为有办法有序列化为另一种类型的类型......是有什么毛病,使用它作为一个复杂吗?

+0

正如伊恩指出令牌并不需要是一个实体。尽管您可能需要将Id属性重命名为其他内容,否则启发式将启动并假定它是一个实体。目前没有办法为WCF DS中的有效负载部分指定自定义序列化格式。 – 2012-04-17 12:12:56

+0

这是一个广义的例子。我想在服务器上采用对象模型,并将其扁平化以与现有的OData模式兼容。我最终将服务器端的实体扁平化了。 – 2012-04-17 20:50:58