// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.md in the project root for license information.
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNet.SignalR.Json;
namespace Microsoft.AspNet.SignalR.Hubs
{
public class DefaultParameterResolver : IParameterResolver
{
///
/// Resolves a parameter value based on the provided object.
///
/// Parameter descriptor.
/// Value to resolve the parameter value from.
/// The parameter value.
public virtual object ResolveParameter(ParameterDescriptor descriptor, IJsonValue value)
{
if (descriptor == null)
{
throw new ArgumentNullException("descriptor");
}
if (value == null)
{
throw new ArgumentNullException("value");
}
if (value.GetType() == descriptor.ParameterType)
{
return value;
}
return value.ConvertTo(descriptor.ParameterType);
}
///
/// Resolves method parameter values based on provided objects.
///
/// Method descriptor.
/// List of values to resolve parameter values from.
/// Array of parameter values.
public virtual IList