我试图在类上使用Dispatched方面将执行推送到UI线程,但是我在构建时遇到错误。这是错误:
您无法向泛型类型实例添加方面。将方面添加到相应的泛型类型定义。
我将问题放在一个派生自泛型类的类上似乎有问题。
这是一个简化的代码示例,可以重现这个:
interface IView
{
}
class Presenter<T>
{
}
class DataPresenter : Presenter<IView>
{
[Dispatched]
void DoSomething()
{
}
}
我是否遗漏了某些内容,或者是否无法在继承泛型类型的类上使用方面?
答案 0 :(得分:1)
正如丹尼尔在评论中提到的,这是PostSharp中的一个错误,但我找到了解决方法。我修改了演示者类:
class Presenter<T> : DispatcherObject, IDispatcherObject
{
IDispatcher IDispatcherObject.Dispatcher => DispatcherFactory.GetDispatcherForWindowsDispatcher(Dispatcher);
}
在我的代码中,Presenter已经从DispatcherObject继承,因此实现IDispatcherObject接口解决了我的问题。