Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在可移植类库中,我是否可以从Silverlight定义中没有在.NET Framework中找到的空构造函数的类继承?_.net_Silverlight_.net 4.5_Portable Class Library - Fatal编程技术网

在可移植类库中,我是否可以从Silverlight定义中没有在.NET Framework中找到的空构造函数的类继承?

在可移植类库中,我是否可以从Silverlight定义中没有在.NET Framework中找到的空构造函数的类继承?,.net,silverlight,.net-4.5,portable-class-library,.net,Silverlight,.net 4.5,Portable Class Library,我们有一个类WeakRef,它继承自WeakReference。此类最初是针对标准.NET framework的命名空间的一部分。最近,我们已经迁移到.NET4.5,并决定使用可移植类库。我们包括WeakRef,但在Silverlight应用程序中引用它会导致以下运行时异常: $exception{System.TypeInitializationException:'AxisModel.ImageDownloadAlert'的类型初始值设定项引发了异常。-->System.TypeLoadE

我们有一个类WeakRef,它继承自WeakReference。此类最初是针对标准.NET framework的命名空间的一部分。最近,我们已经迁移到.NET4.5,并决定使用可移植类库。我们包括WeakRef,但在Silverlight应用程序中引用它会导致以下运行时异常:

  • $exception{System.TypeInitializationException:'AxisModel.ImageDownloadAlert'的类型初始值设定项引发了异常。-->System.TypeLoadException:类型'Common.WeakRef`1'违反了继承安全规则。派生类型必须与基类型的安全可访问性匹配,或者不易访问。如果基类具有非透明的默认构造函数,派生类也必须具有默认构造函数,并且方法继承规则适用于这两个方法

    位于Common.WeakRefCallbackHostCore`1..ctor(对象同步根)
    在AxisModel.ImageDownloadAlert..ctor()上 在AxisModel.ImageDownloadAlert..cctor()上

    ---内部异常堆栈跟踪结束---
    在AxisModel.ImageDownloadAlert.get_Instance()
    在SLWebApp.App..ctor()}

    System.Exception{System.TypeInitializationException}

我注意到Silverlight版本的WeakReference有一个空的默认构造函数,这在标准的.NET版本的WeakReference中不是这样。我认为这就是引发异常的原因,因为WeakReference不包含空构造函数。问题是,向此类添加空构造函数将导致WPF应用程序中的编译错误

有没有一种方法可以在Silverlight和WPF应用程序之间共享WeakRef,而不会导致运行时和编译错误?我正在寻找微创的解决方案

更新:

关于在Silverlight中继承WeakReference有一些讨论。显然,这是不可能的,因此必须创建一个包含WeakReference实例的类。但是,不管是否涉及WeakReference,是否可以从一个类似于WeakReference的类继承,因为它的Silverlight定义有一个空的默认构造函数,而其.NET Framework定义没有

讨论可在此处找到:


这是什么原因?正是出于这个原因,我们不会在Visual Studio 2012的RTM位中公开WeakReference的默认构造函数。您使用的是什么构建