У меня есть метод расширения, который я пытаюсь сделать универсальным для передачи сообщений.
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 () во всех моих частичных классах.