我想按照解释序列化派生类型here但对于信号R
我想实现从 JsonConverter 派生的自定义转换器
我将其添加到 signalR 中,如下所示
var serializer = GlobalHost.DependencyResolver.GetService(typeof(JsonSerializer)) as JsonSerializer;
var i = new CustomTypeConverter();
serializer.Converters.Add(i);
GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => serializer);
我应该处理什么类型public override bool CanConvert(Type objectType)
当我调试此函数时,我看不到我识别为解决方案一部分的类型
这已经让我发疯好几个小时了。感谢halter73的评论,我能够在我的特殊情况下找到解决该问题的方法:我需要管道来为我创建接口实例,但它不能开箱即用。
所以解决方案如下:
class CustomResolver : Microsoft.AspNet.SignalR.Hubs.DefaultParameterResolver
{
public override object ResolveParameter( Microsoft.AspNet.SignalR.Hubs.ParameterDescriptor descriptor, Microsoft.AspNet.SignalR.Json.IJsonValue value )
{
if( descriptor.ParameterType.IsInterface )
{
object TargetObject = <Create the object instance here>
return value.ConvertTo( TargetObject.GetType() );
}
else
{
return value.ConvertTo( descriptor.ParameterType );
}
}
}
然后在你打电话之前
WebApp.Start()
注册这个新的参数解析器:
GlobalHost.DependencyResolver.Register( typeof( Microsoft.AspNet.SignalR.Hubs.IParameterResolver ), () => new CustomResolver() );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)