从System.Data.Entity.DynamicProxies对象调用被覆盖的函数
本文关键字:覆盖 函数 调用 对象 System Data Entity DynamicProxies | 更新日期: 2023-09-27 18:06:07
我有一个扩展方法,我试图使通用的消息传递。
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()在我所有的部分类
问题是你没有"覆盖" .ToString()
;你用new
重新引入了它。如果你想重写,使用override
,而不是new
。