C# 在Windows Phone 7中访问便携库类时出现MissingMethodException
我有一个具有以下结构的项目:C# 在Windows Phone 7中访问便携库类时出现MissingMethodException,c#,wcf,windows-phone-7,portable-class-library,missingmethodexception,C#,Wcf,Windows Phone 7,Portable Class Library,Missingmethodexception,我有一个具有以下结构的项目: WP7客户机(参考文献2) 便携式图书馆(共享) WCF服务(参考文献2) ad 1)客户端还包含对服务(3)的服务引用,其类型从(2)重用。 ad 2)库包含服务和客户端都使用的数据契约(DataContract) 到目前为止还不错。所有这些都可以在WVGA 512 MB模拟器上完美运行。但当我在真实设备或emulator 7.1上运行它时。它在构造类(uknown类)的某个地方抛出MissingMethodException 我能够把它缩小到图书馆里的合同(经过
ad 2)库包含服务和客户端都使用的数据契约(
DataContract
)
到目前为止还不错。所有这些都可以在WVGA 512 MB模拟器上完美运行。但当我在真实设备或emulator 7.1上运行它时。它在构造类(uknown类)的某个地方抛出MissingMethodException
我能够把它缩小到图书馆里的合同(经过几个小时的评论)。每当代码触及可移植库中的任何类时,就会引发此异常。客户端(1)包含引用(copy local==true)。不知道我还能做什么
客户端是WP7.1,可移植库是.NET4+/SL4+/WP7+,服务是.NET4.5
为什么会发生这种情况,如何在真实设备(和/或emulator 7.1)上使用WP7中的可移植库中的类
更新:我已将数据合同移动到客户端(1)项目。但是当它们被访问时,仍然会抛出相同的异常targetingException
(使用内部MissingMethodException
)。我很困惑。我现在怀疑DataContract
属性
更新2:它也不是DataContract
属性。这些类派生自抽象泛型类。如果有帮助,我将尝试使用KnownType
属性标记它
更新3:所以它是基类。我删除了它的通用组件,但仍然不起作用。所以我完全去掉了基类,现在它可以工作了但为什么不工作?它适用于服务,适用于WVGA模拟器,为什么不适用于设备?我尝试将
KnownType
放在基类上,甚至放在子类上。什么都不管用。对于任何可能有这种奇怪行为的人来说。这是由协方差和反方差指标引起的。我有这样的情况:
public IMyInterface<in TClass>
{
void DoSomething(TClass value);
}
public MyClass : IMyInterface<MyClass>
{
// not important
}
公共IMyInterface
{
无效剂量测定(TClass值);
}
公共MyClass:IMyInterface
{
//不重要
}
它实际上是由in(逆变)或out(协变)引起的。谢谢,微软。当我删除这些时,突然发现应用程序以前根本就没有启动的地方没有问题