Могу ли я вызвать метод по умолчанию изнутри моей прокладки?
Я попробовал это, но это не сработает.
ShimConfigurationHelper.GetConfigValueString = (key) {
switch (key)
{
case "SpecialKey":
return "some-value-for-testing";
default:
return ConfigurationHelper.GetConfigValue(key);
}
};
Вы можете пометить разделы своего кода, которые должны выполняться, как если бы они были вне 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;
};