我正在处理一个包含对象及其扩展的基类的二进制文件。我想实例化对象,但要使用我自己的基类实现。我可以在基类中看到我需要扩展的方法。
问题在于基类实现了一个名为"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 }
}
}
现在你所需要做的就是使用你的对象。