C# 在asp.net中处理不同的动力学中缺少属性?

C# 在asp.net中处理不同的动力学中缺少属性?,c#,.net,asp.net,dynamic,C#,.net,Asp.net,Dynamic,我在看罗伯斯。将json迁移转换为动态对象后,他检查是否存在如下属性: if (col.nullable != null) { if (col.nullable) { sb.Append(" NULL "); } else { sb.Append(" NOT NULL ");

我在看罗伯斯。将json迁移转换为动态对象后,他检查是否存在如下属性:

            if (col.nullable != null) {
                if (col.nullable) {
                    sb.Append(" NULL ");
                } else {
                    sb.Append(" NOT NULL ");
                }
            } else {
                sb.Append(" NULL ");
            }
当我试图将其编译成wpf应用程序时,第一行出现异常:

“System.Dynamic.ExpandoObject”没有 不包含的定义 “可为空”


那么,在asp.net设置中使用时,为什么会起作用呢?或者这与WebMatrix有关?

问题是WebMatrix使用自己的动态类型,而不是expando。对于expando,如果从未设置过值,它将抛出异常而不是返回null。我不确定json fx是否会允许您使用与此对象类似的其他“expando”


另一个选项是捕获混乱成员的异常。

我看到过,当动态对象由驻留在与访问它的程序集中不同的程序集中的匿名类型支持时,人们也会遇到类似的问题。这可能与此有关。我正在使用JsonFx将json解码为动态。在另一个程序集中,该对象将被视为匿名类型支持的对象吗?Rob使用webmatrix中提供的json帮助程序执行相同的作业。为什么会有所不同?