从泛型类型派生的类上的PostSharp方面构建错误

本文关键字:方面 构建 错误 PostSharp 泛型类型 派生 | 更新日期: 2023-09-27 18:15:23

我试图在类上使用分派方面来将执行推到UI线程,但我在构建时遇到错误。下面是错误:

不能向泛型类型实例添加方面。将方面添加到相应的泛型类型定义中。

我把方面放在从泛型类型派生的类上似乎有问题。

下面是一个简化的代码示例,可以重现如下:

interface IView
{
}
class Presenter<T>
{
}
class DataPresenter : Presenter<IView>
{
    [Dispatched]
    void DoSomething()
    {
    }
}

我错过了什么,或者是不可能使用方面的类,从泛型类型继承?

从泛型类型派生的类上的PostSharp方面构建错误

正如Daniel在评论中提到的,这是PostSharp的一个bug,但我找到了一个解决方案。我修改了presenter类:

class Presenter<T> : DispatcherObject, IDispatcherObject
{
    IDispatcher IDispatcherObject.Dispatcher => DispatcherFactory.GetDispatcherForWindowsDispatcher(Dispatcher);
}

在我的代码演示器已经从DispatcherObject继承,所以实现IDispatcherObject接口解决了我的问题。