我能以某种方式从 shim 内部调用默认方法吗?
我试过了,但它没有用。
ShimConfigurationHelper.GetConfigValueString = (key) {
switch (key)
{
case "SpecialKey":
return "some-value-for-testing";
default:
return ConfigurationHelper.GetConfigValue(key);
}
};
答案 0 :(得分:0)
您可以标记要执行的代码部分,就像它们在ShimContext之外一样,这样它们就可以使用原始实现。这样做的一种方法是将代码从调用ShimContext.ExecuteWithoutShims
中包含在委托中。这样做,您的代码可能看起来像这样::
ShimConfigurationHelper.GetConfigValueString = (key) {
var response=String.Empty;
switch (key)
{
case "SpecialKey":
response = "some-value-for-testing";
break;
default:
ShimsContext.ExecuteWithoutShims(() => {
response = ConfigurationHelper.GetConfigValue(key);
});
break;
}
return response;
};