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

时间:2016-10-28 21:10:44

标签: c# generics postsharp

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

  

您无法向泛型类型实例添加方面。将方面添加到相应的泛型类型定义。

我将问题放在一个派生自泛型类的类上似乎有问题。

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

interface IView
{
}

class Presenter<T>
{
}

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

我是否遗漏了某些内容,或者是否无法在继承泛型类型的类上使用方面?

1 个答案:

答案 0 :(得分:1)

正如丹尼尔在评论中提到的,这是PostSharp中的一个错误,但我找到了解决方法。我修改了演示者类:

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

在我的代码中,Presenter已经从DispatcherObject继承,因此实现IDispatcherObject接口解决了我的问题。