为什么我的非动态类方法返回动态

时间:2014-04-15 15:37:04

标签: c# dynamic

以下代码导致C#编译器返回dynamic类型,但该类和GetUserProfileAsync方法是正常的“具体”代码。

var profile = await this.UserProfileRepository.GetUserProfileAsync(this.ViewModel[ViewModelKeys.UserGivenName]);

profile变量上的Intellisense不存在,而编辑/编译器则说:

  

此操作将在运行时解决。

发生了什么事?

1 个答案:

答案 0 :(得分:1)

检查传递给GetUserProfileAsync方法的参数的类型,可能是dynamic

编译器无法知道类型并解析UserProfileRepository类上的方法/调用点。

要解决此问题,请将this.ViewModel的值转换为您期望的类型。

var profile = await this.UserProfileRepository.GetUserProfileAsync((string)this.ViewModel[ViewModelKeys.UserGivenName]);

现在编译器可以全力以赴。