class 从通用类型派生的 PostSharp 方面构建错误
PostSharp aspect build error on class derived from generic type
我试图在 class 上使用 Dispatched 方面将执行推送到 UI 线程,但我在构建时遇到错误。这是错误:
You cannot add an aspect to a generic type instance. Add the aspect to the corresponding generic type definition.
我将方面放在从通用类型派生的 class 上似乎有问题。
这是一个可以重现此内容的简化代码示例:
interface IView
{
}
class Presenter<T>
{
}
class DataPresenter : Presenter<IView>
{
[Dispatched]
void DoSomething()
{
}
}
我是不是遗漏了什么或者无法在从泛型类型继承的 class 上使用方面?
正如 Daniel 在评论中提到的,这是 PostSharp 中的一个错误,但我找到了解决方法。我修改了演示者 class:
class Presenter<T> : DispatcherObject, IDispatcherObject
{
IDispatcher IDispatcherObject.Dispatcher => DispatcherFactory.GetDispatcherForWindowsDispatcher(Dispatcher);
}
在我的代码中,Presenter 已经继承自 DispatcherObject,因此实现 IDispatcherObject 接口解决了我的问题。
我试图在 class 上使用 Dispatched 方面将执行推送到 UI 线程,但我在构建时遇到错误。这是错误:
You cannot add an aspect to a generic type instance. Add the aspect to the corresponding generic type definition.
我将方面放在从通用类型派生的 class 上似乎有问题。
这是一个可以重现此内容的简化代码示例:
interface IView
{
}
class Presenter<T>
{
}
class DataPresenter : Presenter<IView>
{
[Dispatched]
void DoSomething()
{
}
}
我是不是遗漏了什么或者无法在从泛型类型继承的 class 上使用方面?
正如 Daniel 在评论中提到的,这是 PostSharp 中的一个错误,但我找到了解决方法。我修改了演示者 class:
class Presenter<T> : DispatcherObject, IDispatcherObject
{
IDispatcher IDispatcherObject.Dispatcher => DispatcherFactory.GetDispatcherForWindowsDispatcher(Dispatcher);
}
在我的代码中,Presenter 已经继承自 DispatcherObject,因此实现 IDispatcherObject 接口解决了我的问题。