我正在研究一个CSharp表达式求值程序,可以使用,如下所示.该组件生成代码并在内存中编译它,之后,它加载生成的程序集,创建生成的类的实例并运行它.结果保存在字典中.
我的问题是所有运行正常,直到最后一行代码失败,异常:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'object '不包含'FirstName'的定义.
但是,Visual Studio能够向我展示专业变量内容:
Professional = { FirstName = Juan Pablo,
LastName = Ibañez,
Certifications = <>f__AnonymousType0`3[System.String,System.String,System.String][],
SayHi = System.Action }
Run Code Online (Sandbox Code Playgroud)
这是代码:
static void Main(string[] args)
{
const string data = @"results[""professional""] =
new
{
FirstName = ""Juan Pablo"",
LastName = ""Ibañez"",
Certifications = new[]
{
new { Provider=""MSFT"", ExamCode = ""70-536"", Title = ""TS: Microsoft .NET Framework – Application Development Foundation"" },
new { Provider=""MSFT"", ExamCode = ""70-505"", Title = ""TS: Microsoft .NET Framework – Application Development …Run Code Online (Sandbox Code Playgroud)