[英]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.