簡體   English   中英

為 C# 泛型類型方法創建存根

[英]Creating Stub for C# Generic Type Method

我有一個通用方法:(簡化)

public class DataAccess : IDataAccess
{
    public List<T> GetEntity<T>()
    {
       return GetFromDatabase<T>(); //Retrieve from database base on Type parameter
    }
}

出於測試目的,我想創建一個存根,我希望從該存根中返回一些數據:

public class DataAccessStub : IDataAccess
{
    public List<T> GetEntity<T>()
    {
       List<Foo> listFoo = new List<Foo>();
       Foo foo = new Foo();
       foo.Name = "Some Name";
       listFoo.Add(foo);

       return listFoo; // I want Foo to be returned
    }
}

由於T尚未確定它是什么類型,因此我無法返回List<Foo> 會出現編譯錯誤。 那么如何為這種泛型方法編寫存根呢?

編輯:稍微更改了代碼。 第一種方法將根據類型參數從數據庫中檢索。 第二個是用於測試的存根。 抱歉,我不確定這是否能解釋我想提及的內容。

謝謝。

    interface IA
{
    List<T> Get<T>();
}

class StubA : IA
{
    public List<T> Get<T>()
    {
        var item = new Foo();
        var data = new List<Foo> {item};
        return new List<T>(data.Cast<T>());
    }
}

暫無
暫無

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

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