Mã bên dưới đang hoạt động tốt miễn là tôi có lớp ClassSameAssemblytrong cùng một assembly với lớp Program. Nhưng khi tôi chuyển lớp ClassSameAssemblysang một tập hợp riêng biệt, một RuntimeBinderException(xem bên dưới) sẽ được ném ra. Có thể giải quyết nó không?
using System;
namespace ConsoleApplication2
{
public static class ClassSameAssembly
{
public static dynamic GetValues()
{
return new
{
Name = "Michael", Age = 20
};
}
}
internal class Program
{
private static void Main(string[] args)
{
var d = ClassSameAssembly.GetValues();
Console.WriteLine("{0} is {1} years old", d.Name, d.Age);
}
}
}
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'object' không chứa định nghĩa cho 'Name'
at CallSite.Target(Closure , CallSite , Object )
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
at ConsoleApplication2.Program.Main(String[] args) in C:\temp\Projects\ConsoleApplication2\ConsoleApplication2\Program.cs:line 23