Мне нравится переписывать метод в классе, поэтому я расширяю метод с тем же именем и параметром, но он никогда не вызывается.
http://msdn.microsoft.com/en-us/library/bb383977.aspx
.... Метод расширения с тем же именем и сигнатурой, что и у интерфейса или метода класса, никогда не будет вызываться. ....
Хорошо, я должен принять это.
Мой вопрос:
для открытого класса (и даже у меня есть исходный код), если мне нравится переписывать метод OUTSide класса (в другом проекте, но в том же решении), как?
[EDIT]
Вот предложенный способ, используйте virtual / override, без ошибок во время выполнения, без ошибок при компиляции, просто никогда не вызывайте тоже :(, пожалуйста, посмотрите
В проекте A:
public class CachePlan : ICachePlan
{
public virtual CacheSettings GetPlan(ControllerContext filterContext)
{
return null;
}
}
В проекте B:
public class CachePlanExtension: CachePlan
{
public override CacheSettings GetPlan(ControllerContext filterContext)
{
CacheSettings ca = new CacheSettings();
ca.IsCachingEnabled = true;
ca.Duration = 100;
return ca;
}
}
Но никогда не вызывать, CashPlan.GetPlan по-прежнему возвращает ноль. Anyidea