C#属性在运行时可见而不是编译时间?

时间:2015-02-05 18:32:46

标签: c# lambda runtime compile-time

我在Web API调用中有以下代码。

IEnumerable<WebSite> result;

using (var mgr = new ServerManager()) {
    result = mgr.Sites.Select(s => new WebSite {
        Name = s.Name, 
        LogLocation = s.LogFile.Directory,
        LogDirs = s.Applications.Select(a=> 
            string.Format("{0}\\W3SVC{1}", s.LogFile.Directory, a.Site.Id)
            ).ToList()
    }).ToList();
}

我正在尝试枚举IIS日志的目录。在第二个lambda中,a.Site.Id在编译时无效,因为a没有Site属性。但是,在该lambda中设置断点并查看成员或在立即窗口中调用该代码可以正常工作。知道这里发生了什么吗?

0 个答案:

没有答案