Bar*_*ğlu 5 .net dynamic razor
我创建了一个动态对象,如下所示:
dynamic myObject = new
{
DisplayName = "Mahesh"
};
Content = Parse("Main", myObject);
Run Code Online (Sandbox Code Playgroud)
然后我解析它为Razor模板.但它不起作用,因为对象无法访问其属性.这里有什么问题 ?
提前致谢,
匿名类型有一些可访问性问题,因为dynamic
通过 c# 提供程序尝试尊重可访问性。不同模块中的匿名类型不可访问(请记住,MVC 页面通常会编译到不同的模块中),因此没有属性。
IIRC,然而,这实际上在后来的 MVC 补丁中得到了修复 - 我似乎记得当我的本地计算机的转速高于我们的开发服务器时,这意味着:它在更高版本上可以在本地工作,但正如您所描述的那样失败了开发服务器。
不会ExpandoObject
遇到这个问题,因为它不使用 c# 提供程序(IDynamicMetaObjectProvider
而是实现),并且没有可访问性的概念(它只是将成员名称映射到字典)。