C# 是否存在从不可见类继承的模式?

C# 是否存在从不可见类继承的模式?,c#,inheritance,obfuscation,decorator,C#,Inheritance,Obfuscation,Decorator,为了形象化我的问题,这里有一个小图片: 我们这里有两个集会。他们两个都是模糊不清的。基础是由我们编写和混淆的。特别的一个是由另一个人写的和模糊的A。A没有我们的来源,我们也没有他的。整个想法是,A希望能够扩展我们的BaseAssembly中的每个函数。A知道我们在BaseInterfaceAssembly中有所有公共可见接口的实现。他希望通过添加methodB()并在调用基本实现之前在methodA()中执行一些操作来扩展我们的BaseClass基类是内部的,并且已模糊 这就是装饰师的作用所在

为了形象化我的问题,这里有一个小图片:

我们这里有两个集会。他们两个都是模糊不清的。基础是由我们编写和混淆的。特别的一个是由另一个人写的和模糊的A。A没有我们的来源,我们也没有他的。整个想法是,A希望能够扩展我们的
BaseAssembly
中的每个函数。A知道我们在
BaseInterfaceAssembly
中有所有公共可见接口的实现。他希望通过添加
methodB()
并在调用基本实现之前在
methodA()
中执行一些操作来扩展我们的
BaseClass
<代码>基类是内部的,并且已模糊


这就是装饰师的作用所在。我们可以强制A为
BaseInterface
对象制作装饰器。为此,我们需要创建一个抽象装饰器基,其中A只需要重写
methodA()
并添加
methodB()
。对他来说没有区别。对于我们来说,我们必须为每个接口编写和维护这些抽象装饰器。这是我们不想要的开销

第一个问题,是否有一个双方都没有开销的替代方案——如果在对象创建后不会产生性能问题,我也会接受某种黑客攻击

第二个问题,如果没有其他选择,是否有一种方法可以编写一个抽象的装饰器,包含所有存在的和将来将存在的接口

编辑

根据要求,提供一些示例代码:

public interface BaseInterface
{
    void MethodA();
}

internal class BaseClass : BaseInterface
{
    public virtual void MethodA()
    {
        //do something
    }
}

internal class SpecialClass : BaseClass
{
    public override void MethodA()
    {
        //do something before
        base.MethodA();
    }

    public void MethodB()
    {
        //do something
    }
}

尊敬的Yggdrasil

“为此,我们需要制作一个抽象的装饰器底座”,为什么我们要这样做?为什么不把编写decorator+dec.base的责任交给decorator的实现者呢?谁控制实例化?问得好!也许您可以创建一个带有互操作调用的包装器。你能发布一些代码吗?或者就像C#中的扩展方法一样。到目前为止,它也在应用decorator pattern.Thx。我添加了一些示例代码。对于扩展方法,它们用于扩展
MethodB()
,但我不用于操作
MethodA()
,如示例代码所示。