【发布时间】:2014-05-23 20:09:53
【问题描述】:
我有一个具有以下结构的项目:
- WP7 客户端(参考文献 2)
- 便携式库(共享)
- WCF 服务(参考文献 2)
ad 1) 客户端还包含对服务 (3) 的服务引用,其类型从 (2) 中重用。
广告 2) 库包含服务和客户端使用的数据协定 (DataContract)。
到目前为止一切顺利。一切都在 WVGA 512 MB 模拟器上完美运行。但是当我在真实设备或模拟器 7.1 上运行它时。它在构造一个类(未知类)的某个地方抛出MissingMethodException。
我能够(经过数小时的评论)将其范围缩小到图书馆 (2) 中的合同。每当代码触及可移植库中的任何类时,都会引发此异常。客户端 (1) 包含参考(复制本地 == true)。不知道我还能做什么。
客户端是WP7.1,可移植库是.NET4+/SL4+/WP7+,服务是.NET 4.5。
为什么会发生这种情况,如何在真实设备(和/或模拟器 7.1)上的 WP7 中使用可移植库中的类。
更新:我已将数据合同移至客户端 (1) 项目。但是当它们被访问时,仍然会抛出相同的异常TargetInvocationException(带有内部MissingMethodException)。我很困惑。我现在怀疑DataContract 属性。
更新 2:也不是 DataContract 属性。这些类是从抽象泛型类派生的。如果有帮助,我会尝试用KnownType 属性标记它。
更新 3:所以它是基类。我删除了它的通用组件,但仍然无法正常工作。所以我完全剥离了基类,它现在可以工作了。 但为什么它不起作用?它适用于服务,适用于 WVGA 模拟器,为什么不适用于设备?我尝试将KnownType 放在基类上,甚至放在子类上。没有任何效果。
【问题讨论】:
标签: c# wcf windows-phone-7 portable-class-library missingmethodexception