[英]Getting nullable object name via reflection from exception
我们有许多映射器类,不鼓励进行重构(例如,使用.HasValue
检查)。 简而言之,映射如下:
public static MyDto MyEntityToMyDto(MyEntity entity)
{
MyDto dto = new MyDto ();
try
{
dto.DtoAge = entity.Age.Value;
dto.DtoBirthDate = entity.Birthdate.Value;
dto.DtoNumber = entity.Number.Value;
}
catch (InvalidOperationException ex)
{
//Throw CustomException with message including the property name which is null like "Age field is null"
}
return dto;
}
似乎异常Stacktrace知道发生了哪一行。
InvalidOperationException是否具有有关通过反射获取信息的字段的任何信息? 是否可以获取此信息?
还是可以使用ExceptionResource resource
来实现? 如果可以,怎么办?
提前致谢。
除非引发该异常的代码用此类信息注释了该异常,否则您将无法不付出高昂的代价就可以使用该异常(请考虑调试信息以找到与堆栈跟踪行相对应的IL,然后重新组装以找出该异常所涉及字段的名称)。
在这种情况下, Nullable<T>
会引发异常,并且它没有关于存储该字段的任何信息,因此它不可能获得这种信息。
简而言之,不,它无法实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.