【发布时间】:2012-11-15 02:13:44
【问题描述】:
好的,这需要先进行一些设置。
public interface IPolicyObjectAdapter
{
PolicyImage GetPolicyImage(BridgePolicy policy);
}
public class BridgePolicyAdapter : IPolicyObjectAdapter
{
protected virtual PolicyImage GetPolicyImage(BridgePolicy policy)
{
AddPolicyInformation(policy);
}
protected virtual void AddPolicyInformation(BridgePolicy policy)
{
//does stuff
}
}
public class HSPolicyAdapter : BridgePolicyAdapter, IPolicyObjectAdapter
{
protected override void AddPolicyInformation(BridgePolicy policy)
{
base.AddPolicyInformation(policy);
//does more stuff
}
}
当我执行以下代码时,我希望代码进入 HSPolicyAdapter 的 AddPolicyInformation 方法。但它永远不会。它直接进入 BridgePolicyAdapters AddPolicyInformation 方法。
IPolicyObjectAdapter Adapter = null;
Adapter = new HSPolicyAdapter();
PolicyImage image = Adapter.GetPolicyImage(policy);
我确信我遗漏了一些很明显会受伤的东西,但我的大脑现在无法正常工作。我错过了什么?
【问题讨论】:
-
您正在调用 GetDiamondPolicyImage,但您的源代码显示 GetPolicyImage。请您通过输入正确的代码来澄清一下吗?
-
另外,您拨打
base.AddPolyInformation(polyicy, Img)。Img参数是怎么回事?我认为您需要发布一个实际的工作代码集供我们测试。从表面上看,您的整体概念似乎是正确的,但可能只是一个小小的疏忽,但如果没有您提供更准确的信息,我们无法回答。 -
另外,你要做的第一件事是调用
base.AddPolicty...,所以如果你在那里设置一个断点,它应该会命中。 -
还要检查一下:GetPolicyImage 返回 PolicyImage 但 AddPolicyInformation 不返回任何内容。
-
@JoshGough,我确实在 HSPolicyAdapter 中对 base.AddPolicyInformation 的调用放置了一个断点,但它从未被触发。