如何使用不同的基本实现来实例化扩展类?

时间:2013-04-09 01:05:54

标签: c# .net inheritance reflection

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

问题是基类实现了一个名为“WriteFeed”的方法,该方法需要网络连接并将数据写入网络流。我希望它能够使用我的实现,因此WriteFeed可以将数据转储到控制台。

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

1 个答案:

答案 0 :(得分:0)

我唯一的建议是使用复合方法。我不确定这是否符合您的需求,或者您具有可见性访问权限,但它可能有效。

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 }
}

}

您现在需要做的只是使用您的对象。

希望这有帮助。