別のジェネリック型の中でジェネリック型を使いたいのですが。
ただし、次の例外が発生します。
この型は、ジェネリック型またはメソッドの
'MockManagers.ToPos'
型パラメーターとして使用できません。からへの暗黙の参照変換はありません。'Res'
'MockManagers.IMockManager<Req,Res>'
'MockManagers.ToPos'
'MockManagers.MockResponseObject<System.IComparable>'
私は運がなくてもこれを解決するためにいくつかのオプションを試しました。このリファレンスは、内部ジェネリック型をより高いレベルのジェネリック型へのパラメーターとして渡すことを提案しています。これが唯一の解決策ですか?
コード:
マイインターフェース:
/// <summary>
/// Represents IMockManager for mock object creation object.
/// </summary>
/// <typeparam name="Req">The request object Type.</typeparam>
/// <typeparam name="Res">The response object type.</typeparam>
public interface IMockManager<Req, Res>
where Req : MockRequestObject
where Res : MockResponseObject<IComparable>
{...//interface definitions}
オブジェクトの実装:
/// <summary>
/// Represents Mock response for a request object
/// </summary>
public class ToPos : MockResponseObject<byte[]>
{... //implementation}
public class MockBaseObject
{
public int Id { get; set; }
}
public class MockResponseObject<T> : MockBaseObject
{
/// <summary>
/// The response content.
/// </summary>
public T Content { get; set; }
/// <summary>
/// Res creation date.
/// </summary>
public DateTime CreationDate { get; set; }
}