本文整理汇总了C#中ODataMessageWriter.CreateODataParameterWriter方法的典型用法代码示例。如果您正苦于以下问题:C# ODataMessageWriter.CreateODataParameterWriter方法的具体用法?C# ODataMessageWriter.CreateODataParameterWriter怎么用?C# ODataMessageWriter.CreateODataParameterWriter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ODataMessageWriter
的用法示例。
在下文中一共展示了ODataMessageWriter.CreateODataParameterWriter方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteActionContentAsync
protected override async Task<Stream> WriteActionContentAsync(string actionName, IDictionary<string, object> parameters)
{
var message = new ODataRequestMessage();
using (var messageWriter = new ODataMessageWriter(message, GetWriterSettings(), _model))
{
var action = _model.SchemaElements
.Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer)
.SelectMany(x => (x as IEdmEntityContainer).FunctionImports())
.BestMatch(x => x.Name, actionName, _session.Pluralizer);
var parameterWriter = messageWriter.CreateODataParameterWriter(action);
parameterWriter.WriteStart();
foreach (var parameter in parameters)
{
var actionParameter = action.Parameters.BestMatch(x => x.Name, parameter.Key, _session.Pluralizer);
if (actionParameter == null)
throw new UnresolvableObjectException(parameter.Key, string.Format("Parameter [{0}] not found for action [{1}]", parameter.Key, actionName));
if (actionParameter.Type.Definition.TypeKind == EdmTypeKind.Collection)
{
var collectionWriter = parameterWriter.CreateCollectionWriter(parameter.Key);
collectionWriter.WriteStart(new ODataCollectionStart());
foreach (var item in parameter.Value as IEnumerable)
{
collectionWriter.WriteItem(item);
}
collectionWriter.WriteEnd();
}
else
{
parameterWriter.WriteValue(parameter.Key, parameter.Value);
}
}
parameterWriter.WriteEnd();
return await message.GetStreamAsync();
}
}
示例2: WriteActionContentAsync
#pragma warning restore 1998
protected override async Task<Stream> WriteActionContentAsync(string actionName, IDictionary<string, object> parameters)
{
var message = new ODataRequestMessage();
using (var messageWriter = new ODataMessageWriter(message, GetWriterSettings(), _model))
{
var action = _model.SchemaElements
.Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer)
.SelectMany(x => (x as IEdmEntityContainer).FunctionImports())
.BestMatch(x => x.Name, actionName, _session.Pluralizer);
var parameterWriter = messageWriter.CreateODataParameterWriter(action);
parameterWriter.WriteStart();
foreach (var parameter in parameters)
{
if (!(parameter.Value is string) && parameter.Value is IEnumerable)
{
var collectionWriter = parameterWriter.CreateCollectionWriter(parameter.Key);
collectionWriter.WriteStart(new ODataCollectionStart());
foreach (var item in parameter.Value as IEnumerable)
{
collectionWriter.WriteItem(item);
}
collectionWriter.WriteEnd();
}
else
{
parameterWriter.WriteValue(parameter.Key, parameter.Value);
}
}
parameterWriter.WriteEnd();
return await message.GetStreamAsync();
}
}
示例3: WriteActionContentAsync
protected override async Task<Stream> WriteActionContentAsync(string method, string commandText, string actionName, IDictionary<string, object> parameters)
{
#if SILVERLIGHT
IODataRequestMessage
#else
IODataRequestMessageAsync
#endif
message = IsBatch
? await CreateBatchOperationMessageAsync(method, null, null, commandText, false)
: new ODataRequestMessage();
using (var messageWriter = new ODataMessageWriter(message, GetWriterSettings(), _model))
{
var action = _model.SchemaElements
.Where(x => x.SchemaElementKind == EdmSchemaElementKind.EntityContainer)
.SelectMany(x => (x as IEdmEntityContainer).FunctionImports())
.BestMatch(x => x.Name, actionName, _session.Pluralizer);
#if SILVERLIGHT
var parameterWriter = messageWriter.CreateODataParameterWriter(action);
parameterWriter.WriteStart();
#else
var parameterWriter = await messageWriter.CreateODataParameterWriterAsync(action);
await parameterWriter.WriteStartAsync();
#endif
foreach (var parameter in parameters)
{
var operationParameter = action.Parameters.BestMatch(x => x.Name, parameter.Key, _session.Pluralizer);
if (operationParameter == null)
throw new UnresolvableObjectException(parameter.Key, string.Format("Parameter [{0}] not found for action [{1}]", parameter.Key, actionName));
#if SILVERLIGHT
WriteOperationParameter(parameterWriter, operationParameter, parameter.Key, parameter.Value);
#else
await WriteOperationParameterAsync(parameterWriter, operationParameter, parameter.Key, parameter.Value);
#endif
}
#if SILVERLIGHT
parameterWriter.WriteEnd();
#else
await parameterWriter.WriteEndAsync();
#endif
if (IsBatch)
return null;
#if SILVERLIGHT
return message.GetStream();
#else
return await message.GetStreamAsync();
#endif
}
}