传递给构造函数的动态对象中的C#字符串

时间:2014-02-10 18:19:54

标签: c# .net dynamic .net-4.5

我有一个类似下面的课程

public class TzTimeZone
    {
        public TzTimeZone()
        {   
        }

        public TzTimeZone(string timeZoneId, string timeZoneName)
        {
            this.TimeZoneId = timeZoneId;
            this.TimeZoneName = timeZoneName;
        }

        public string TimeZoneId { get; set; }

        public string TimeZoneName { get; set; }
    }

我正在尝试通过在动态对象中传递字符串来使用构造函数创建此类的实例。动态对象“result”包含2个属性 - timeZoneId和timeZoneName。

如果我使用以下语法实例化此类,则会出现执行时错误(编译正常)。错误消息类似于'TzTimeZone(string,string)'的最佳重载方法匹配有一些无效的参数

var timezone = new TzTimeZone(result.timeZoneId, result.timeZoneName);

但是,以下工作原理。

var timezone = new TzTimeZone { TimeZoneId = result.timeZoneId, TimeZoneName = result.timeZoneName };

以下也适用。

var timezone = new TzTimeZone((string) result.timeZoneId, (string) result.timeZoneName);

为什么会出现这种情况?

我的动态对象来自此处 - https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510&sensor=false&timestamp=1331161200

我使用以下语法(使用我编写的辅助实体服务)读取它 -

var result = await entityService.GetEntityAsync<dynamic>(url);

0 个答案:

没有答案