这可能有点用处,但是假设我想在ViewModel中使用Moq来创建一些设计时数据,如下所示:

public class SomeViewModel
{
   public SomeViewModel(ISomeDependency dependency)
   {
      if (IsInDesignMode)
      {
         var mock = new Mock<ISomeDependency>();
         dependency = mock.Object; // this throws!
      }
   }
}

可以将模拟程序设置为执行某些操作,但是您明白了。

我的问题是,在Blend的设计时,此代码会引发InvalidCastException,并带有“无法转换类型为'CaSTLe.Proxies.ISomeDependencyProxy2b3a8f3188284ff0b1129bdf3d50d3fc'的类型为'ISomeDependency'的消息。尽管这不一定与Moq有关,但与CaSTLe有关,但我希望Moq示例能有所帮助;)

知道为什么吗?

谢谢!

最佳答案

我有一个类似的问题,除了强制转换来自伪装为我的类型之一的动态生成的程序集(Blend_RuntimeGeneratedTypesAssembly)类型。

没有明显的原因。

这让我发疯。

09-25 22:12