我有一個單元測試,確保我的WebAPI控制器從右側基類型派生:的WebAPI控制器,名爲「<> C」
[TestMethod]
public void AllWebApiControllersShouldDeriveFromApiController()
{
var controllers = Assembly.GetAssembly(typeof(ApiControllerBase)).GetTypes()
.Where(t => t.Namespace == "Xxx.Web.Controllers")
.ToList();
controllers.Should().NotBeEmpty();
foreach (var controller in controllers)
{
if (controller == typeof(ApiControllerBase)) continue;
controller.Should().BeDerivedFrom<ApiControllerBase>();
}
}
它工作正常,直到最近,當列表中的所有突然的控制器開始出現兩個「鬼」控制器。他們看起來像某種通用(自動生成的?)類型,他們沒有通過我的測試。它們是:
名稱= 「<> C」 全名= 「Xxx.Web.Controllers.ExistingControllerNameController + <> C」
他們沒有我上面的測試。他們是什麼?哪兒來的呢?我怎樣才能擺脫它們?
N.B.測試在構建服務器上也失敗。清潔&重建沒有幫助。前
控制器代碼:
[HttpGet]
[Route("api/things")]
public IEnumerable<ThingDto> GetAll()
{
return service.GetAll();
}
&後:
[HttpGet]
[Route("api/things")]
public IEnumerable<ThingDto> GetAll()
{
return service.GetAll().OrderBy(x => x.Description);
}
檢查源控件中的更改。在不知道涉及哪些類的情況下無法提供幫助 –
它們是由各種原因生成的編譯器生成的類。只需[在類型上添加對'CompilerGenerated'屬性的檢查](http://stackoverflow.com/questions/6418779)。 –
@DStanley你是對的,但是,我想了解他們爲什麼突然開始出現? – Tsar