这是因为如果匿名类型是公共(public)的,可能会发生安全问题吗?我就是不明白。
这就是我希望该语言支持的代码类型
装配1
public class Renderer
{
public void RenderHtmlInput(dynamic inputModel)
{
var html = string.format("<input type='text' width='{0}' height='{1}'>", inputModel.width, inputModel.height);
...
}
}
装配2
public class Consumer
{
public void Run()
{
var renderer = new Renderer();
renderer.RenderInput(new { width = "12px", height = "20px" });
}
}
最佳答案
因为你应该在同一个库中使用它们。 不能通过接口(interface)或类边界公开匿名类型。
如果您想这样做,请使用动态类型。
编辑:匿名类型的名称也会自动生成,因此从库中公开它们意味着它们可能与另一个库中的匿名类型发生冲突。
关于c# - 为什么匿名类型在 C# 中具有内部可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9802877/