簡體   English   中英

在 C# 中使用動態來訪問匿名類型的字段 - 可能嗎?

[英]Using dynamic in C# to access field of anonymous type - possible?

我有一個 controller 方法:

public JsonResult CalculateStuff(int coolArg)
{
    if(calculatePossible)
       return Json(CoolMethod(coolArg));
    else return Json(new { Calculated = false });
}

現在,我想測試一下。

public void MyTest
{
    var controller = GetControllerInstance();
    var result = controller.CalculateStuff().Data as dynamic;
    Assert.IsTrue(result.Calculated == false);        
}

這會引發 RuntimeBinderException,說明未定義 Calculated。 有什么辦法可以做到這一點?

更新

按照 Jons 的建議,我使用 InternalsVisibleTo 與我的測試程序集交朋友。 一切正常。 謝謝喬恩。

您可以這樣做,但只能在同一個程序集中。 匿名類型是內部的。

不過,如果您在生產程序集中使用InternalsVisibleTo來授予對測試程序集的訪問權限,也應該沒問題。

暫無
暫無

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

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