如何用不同的基实现实例化扩展类

本文关键字:实例化 扩展 实现 何用不 | 更新日期: 2023-09-27 18:08:14

我正在处理一个包含对象及其扩展的基类的二进制文件。我想实例化对象,但要使用我自己的基类实现。我可以在基类中看到我需要扩展的方法。

问题在于基类实现了一个名为"WriteFeed"的方法,该方法期望网络连接并将数据写入网络流。我希望它使用我的实现,所以WriteFeed可以代替转储数据到控制台。

我不能改变现有的二进制文件,只能改变我使用和实例化它的方式。

如何用不同的基实现实例化扩展类

我唯一的建议是使用复合方法。我不确定这是否能满足你的需要,或者你有可见性访问,但它可能有效。

public class SomeBaseClassInSomeBinary
{
   protected virtual void Method1(...) {}
   protected virtual void WriteFeed (...) {}
} 
public class SomeClassInSomeBinary: SomeBaseClassInSomeBinary
{
   protected override void Method1(...) { base.Method1(...); }
   protected override void WriteFeed (...) { base.WriteFeed (...); }
} 
// **** your code
public class MyCode: SomeBaseClassInSomeBinary
{
     private SomeClassInSomeBinary Composite = new SomeClassInSomeBinary();
     protected override void Method1(...) { Composite.Method1(...); }
     protected override void WriteFeed (...) { your implementation }
}

}

现在你所需要做的就是使用你的对象。