[英]Send non-DataContract class to Azure Service Fabric Actor
Service Fabric需要[DataContract]
和[DataMember]
屬性用於所有用作Actor服務的輸入參數的類。
有沒有辦法覆蓋這個默認值?
在我們的項目中,我們大量使用只讀消息類,它們具有只讀屬性和構造函數。 序列化由Newtonsoft JSON序列化程序處理,它運行得很好。 現在,我想在Service Fabric中發送此消息,因此我需要一種方法來覆蓋類似JSON序列化程序的默認類WCF序列化。
我能夠通過自己實現序列化來解決這個問題。 基本上,這是它的工作原理:
定義一個接受並返回byte[]
+類型名稱的actor(+ contract),例如
Task<byte[]> DoWork(string typeName, byte[] message);
使用自定義序列化程序將byte[]
反序列化為指定類型的實例(我使用的是Newtonsoft JSON轉換器)。
在發送端,使用相同的序列化器將對象序列化為byte[]
。
我定義了一些基類來包裝它,所以我不必為每個actor / client重復它。
這感覺有點哈哈。 很高興從Service Fabric團隊獲得一些意見。 從平台本身獲得本機擴展點會更好。 DataContract
感覺有點陳舊,它不再用於我們項目的任何地方。
在我的博客文章中更詳細地描述了這種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.