說泛型參數我有很多實現此接口的不同類別:設置從對象的變量
public interface IRequest
{
Type ResponseType { get; }
}
凡思想是每個請求類指定它會收到效應初探的類型。
而且我對串行/解串,其中反序列化,方法簽名是這樣一類:
public static T Deserialize<T>(byte[] data) where T : IRequest
{ ... }
我怎麼能叫反序列化,並使用ResponseType
變量作爲泛型參數?
var request = new SomeRequest() // object which implements IRequest
byte[] receivedData = myNetworkService.SendRequest(request.Serialize());
var response = MyBinarySerializer.Deserialize<request.ResponseType>(receivedData);
還有另外一種方法可以解決這個問題嗎?我用於序列化/反序列化的類是第三方,所以我無法更改它。它的Deserialize<T>()
需要使用通用參數調用T
什麼是MyBinarySerializer? –
@ haim770這一個遺憾的是沒有。 – Walkingsteak
https://github.com/jefffhaynes/BinarySerializer/blob/master/BinarySerializer/BinarySerializer.cs#L153 – Walkingsteak