Orleans 序列化遇到的坑

真的是巨坑

搞明白問題的我簡直無法用言語來描述我的心情

先上架構圖

理想中的架構

服務隨便上 網關只負責分發

然後跟隨官方教程寫遇到了序列化問題

以前有經驗,不慌,以前稀裏糊塗就搞定了。

再然後遇到一個令人崩潰的問題

One or more errors occurred. (Named type "Entity.BookCategory" is invalid: Type string "Entity.BookCategory" cannot be resolved.) ---> System.TypeAccessException: Named type "Entity.BookCategory"

Entity.BookCategory這個自行替換成實體類文件名

中間出現的描述詞是在太少

爲一一個描述is invalid: Type string 卻沒什麼卵用  摸不着頭腦

在然後注意到報錯的類是System.

TypeAccessException

The exception that is thrown when a method attempts to use a type that it does not have access to.

 

翻譯過來是沒有訪問權限拋出的異常

 

一臉懵逼

Entity是基礎庫 大家都引用了

只有Gateway沒有引用

於是引用Entity庫

這個是Github上大佬給出的解決方法

最開始我是用的第一個解決方法

在Gateway安裝兩個Nuget,沒有解決

.ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(BookCategory).Assembly).WithReferences())

然後轉爲第三種方法,誒 跑動了

還沒高興一會。

做了個測試,

網關啓動

修改服務邏輯 添加新的類

啓動服務與客戶端

問題又出來了

這可真是叫人絕望啊

意味着每一次新增實體都要重啓網關。

這是在逗我?

 

也大概能猜到爲什麼

Orleans是預編譯

他在程序啓動的時候執行掃包,編碼,生成類文件

新增的實體沒有被生成類文件。

當然沒有權限訪問,因爲根本不存在。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章