アプリケーションをSignalRalphaにアップグレードするだけです。彼らはIJsonSerializerインターフェースを変更しました
私が持っていた以前のインターフェースで:
public string Stringify(object obj)
{
var s = "";
s = JsonConvert.SerializeObject(obj, _settings);
return s;
}
そしてそれはうまくいきました。
今私はしようとしています:
public class CustomJsonNetSerializer : IJsonSerializer
{
private readonly JsonSerializerSettings _settings;
public CustomJsonNetSerializer(JsonSerializerSettings settings)
{
_settings = settings;
}
public object Parse(string json)
{
return JsonConvert.DeserializeObject(json);
}
public object Parse(string json, Type targetType)
{
return JsonConvert.DeserializeObject(json, targetType);
}
public T Parse<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
public void Serialize(object value, System.IO.TextWriter writer)
{
var s = "";
s = JsonConvert.SerializeObject(value, _settings);
writer.Write(s);
}
}
しかし、現在、メッセージはクライアントに返送されていません。
以下のDavidの回答に従って編集-これは私が実装した方法です-サンプルで動作するようになりました以下のコードは、デフォルトのシリアライザーが行うことを行うのでもちろん無意味です-しかし、簡単にするためにオブジェクトのロックに関連する追加を削除しました
パブリッククラスCustomJsonNetSerializer:IJsonSerializer {
JsonNetSerializer mySerialiser;
public CustomJsonNetSerializer(JsonSerializerSettings settings)
{
mySerialiser = new JsonNetSerializer(settings);
}
public void Serialize(object value, System.IO.TextWriter writer)
{
mySerialiser.Serialize(value, writer);
}
public object Parse(string json, Type targetType)
{
return mySerializer.Parse(json, targetType);
}
}