簡體   English   中英

C#對象元數據

[英]C# object metadata

有沒有辦法將元數據粘貼到C#中的對象?

上下文:通過網絡在對等體之間發送消息的框架。 消息可以是任意可序列化的用戶定義的.NET類型。

當然,當對等方發送消息時,框架可以將對象包裝到Message類中,該類保存元數據,接收方可以將其解包。 但是,對等方的處理方法可能決定將消息重新發送給另一個對等方 - 但是,我想保留原始元數據。 除非重新發送,否則不應要求用戶始終使用Message.RealMessage

我考慮過將包裝好的實例保存在字典中,然后重新查找是否在字典中已經有一個已包裝的實例並重新發送該實例,但是,由於消息可能根本不重新發送(或重復發送多次),這將需要更多和更多的記憶。

有解決方案嗎 也許C#直接支持將附加信息粘貼到對象上? 通常我會選擇內部接口,但是,用戶必須從框架的基類派生所有類,這是不可能的。

編輯:我想說“這里是WrappedMessage的對象,但你只能使用 T提供的接口”。

ConditionalWeakTable應該比直接使用Dictionary做得更好。

報價:

使編譯器能夠將對象字段動態附加到托管對象。

你可以忽略關於用於編譯器的類的部分:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM