这可能有点用处,但是假设我想在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)类型。
没有明显的原因。
这让我发疯。