我正在处理一个包含对象及其扩展的基类的二进制文件。我想实例化这个对象,但是为了使用我自己的基类实现。我可以在基类中看到知道需要扩展的方法。如何使用不同的基础实现实例化扩展类?
问题是基类实现了一种名为“WriteFeed”的方法,该方法需要网络连接并将数据写入网络流。我希望它使用我的实现,所以WriteFeed可以将数据转储到控制台。
我无法更改现有的二进制文件,只能使用和实例化它。
我正在处理一个包含对象及其扩展的基类的二进制文件。我想实例化这个对象,但是为了使用我自己的基类实现。我可以在基类中看到知道需要扩展的方法。如何使用不同的基础实现实例化扩展类?
问题是基类实现了一种名为“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 }
}
}
所有你需要做的就是现在用你的对象,而不是。
希望这会有所帮助。
我无法想象有什么办法可以做到这一点。 – 2013-04-09 01:09:19