基本上我正在尝试使用 Actions来做到这一点。我需要做类似的事情而不是属性,因为在至少一个混凝土中引用了另一个类的动作 - 因为你只能添加/删除动作而不是实际返回它们我需要将它包装在一个添加/删除而不是获取。
interface Whatever
{
Action MyAction { get; }
}
class WhateverConcretion : Whatever
{
Action MyAction
{
get { return SomeLibraryClass.StaticAction; }
}
}
我的项目依赖于特定于平台的库,因此我计划让我的类依赖于包装类的接口,并且每个平台的库将被包装在它自己的类中——在我开始包装 Actions 之前它工作得很好。