我有一个正在使用 WCF 数据服务 OData 服务的客户端应用程序(两者都是 v5.3.0)。我希望客户端应用程序使用 JSON 与服务进行通信,而不是使用默认的 Atom Pub XML。
如果不提供 IEdmModel 实例,这可能吗?使用 Atom 格式时可以这样做:
var ctx = new DataServiceContext(_oDataSvcUri, DataServiceProtocolVersion.V3)
{
IgnoreMissingProperties = true
};
// this isn't explicitly needed, as it uses Atom by default
ctx.Format.UseAtom();
return ctx;
而要使用 JSON,这是需要的示例:
var ctx = new DataServiceContext(_oDataSvcUri, DataServiceProtocolVersion.V3)
{
IgnoreMissingProperties = true
};
const string svcMetadata = "*insert contents of http://example.com/YourData.svc/$metadata here*";
var xmlReader = XmlReader.Create(new StringReader(svcMetadata));
IEdmModel edmModel = EdmxReader.Parse(xmlReader);
ctx.Format.UseJson(edmModel);
ctx.ResolveName = type => type.FullName;
ctx.ResolveType = typeName => Type.GetType(typeName + ", " + "MyDomainModelAssemblyName");
return ctx;
我希望能够在不指定 IEdmModel 的情况下使用 JSON 格式,就像使用 Atom 一样。这可能吗?