2015-01-13 53 views
1

可以以某種方式從我的墊片的內部調用默認方法嗎?墊片使用默認方法實現

我試過這個,但它不起作用。

ShimConfigurationHelper.GetConfigValueString = (key) { 
    switch (key) 
    {      
     case "SpecialKey": 
      return "some-value-for-testing"; 

     default: 
      return ConfigurationHelper.GetConfigValue(key); 
    } 
}; 

回答

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