0
を除外:SignalR:私はこのようなクラスの持っている非シリアライズ可能型
public class MyData
{
public int Id { get; set; }
public String Name { get; set; }
public ThirdPartyClass { get; set; } // non serializable
}
を私は「非直列化可能」と述べた私は、このようにSignalRクライアント機能に私のクラスを渡すとき理由:
var hub = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
var myData = new MyData();
// fill fields
hub.Clients.All.data(myData);
呼び出しがエラー500を返します。 問題のあるフィールドを削除すると、正常に機能します。
私はではありません。は、そのフィールドにクライアントを渡すことに関心があります。
今、私はこれを解決するには、2つの方法を知っている:
- は、カスタムのJSONシリアライザ
- は、唯一の関連フィールドを持つシャドウクラスを作成して値をコピーして、クライアント にこのクラスを送っ書きます
ダースのフィールドがあると、どちらも不快です。 シリアル化からフィールドを除外するために使用するDataAnnotationがあるかどうかは疑問です。