本文整理汇总了C#中IParameter.SingleOrDefault方法的典型用法代码示例。如果您正苦于以下问题:C# IParameter.SingleOrDefault方法的具体用法?C# IParameter.SingleOrDefault怎么用?C# IParameter.SingleOrDefault使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IParameter
的用法示例。
在下文中一共展示了IParameter.SingleOrDefault方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Resolve
public object[] Resolve(object requestParameters, IParameter[] targetParameters)
{
var parameters = (IDictionary<string, object>) requestParameters;
// If length does not match, throw.
if (parameters.Keys.Count != targetParameters.Length)
{
throw new ParameterLengthMismatchException();
}
var result = new List<object>();
// Loop through all keys and check if we have the parameter.
foreach (var pair in parameters)
{
// Find the target parameter with a name equal to the one in the request
var target = targetParameters.SingleOrDefault(tp => string.Equals(pair.Key, (string) tp.Name));
// We did not find a parameter with this name, throw.
if (target == null)
{
throw new ParameterNameNotFoundException();
}
if (target.ParameterType == typeof (object))
{
result.Add(pair.Value);
}
else
{
var serialized = _serializer.SerializeObject(pair.Value);
var converted = _serializer.DeserializeObject(serialized, target.ParameterType);
result.Add(converted);
}
}
return result.ToArray();
}