Вызовите переопределенную функцию из объекта System.Data.Entity.DynamicProxies - PullRequest
0 голосов
/ 17 августа 2011

У меня есть метод расширения, который я пытаюсь сделать универсальным для передачи сообщений.

    public static ActionResult RedirectCompanyMessage<T>(this Controller controller, T mObject, Company company)
    {
        var msg = mObject.ToString()
        ...
    }

mObject.ToString() возвращает мусор, как System.Data.Entity.DynamicProxies.SerialCode_960A5FEF6FE5426EE5F55B8627454C71E7D088921143DE49B208E7FED043ADA5

Но базаТип (тип прокси?) имеет переопределенный ToString ().

public partial class SerialCode
{
    //Prints the serial code with dashes every 5 chars
    public new String ToString()
    {
        return Utility.Utility.FormatSerial(this.Serial);
    }
}

Итак, в чем же дело?Во время отладки, если я наведу курсор на «T», Visual Studio покажет T mObject как правильный Models.SerialCode, но если я запускаю mObject.GetType() в ближайшем окне, я вижу FullName = "System.Data.Entity.DynamicProxies.SerialCode_960A5F...

Я просто хочубыть в состоянии надежно запустить переопределенный ToStrings () во всех моих частичных классах.

1 Ответ

1 голос
/ 17 августа 2011

Проблема в том, что вы не "переопределили" .ToString();ты снова ввел его с new.Если вы хотите переопределить, используйте override, а не new.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...