我在我的解析器中抛出自定义异常,但它们被Automapper捕获并包装,所以我们无法在程序的其他地方处理它们.我已经包含了一个简单的问题示例,期望的结果是捕获一个InterfaceError,但它只捕获一个AutoMapperException,并将InterfaceError作为内部异常.
在班上:
public Order MapOrder(InterfaceOrder iOrder)
{
try
{
Order mappedOrder = Mapper.Map<InterfaceOrder, Order>(iOrder);
}
catch (InterfaceException ex)
{
Log("Interface error");
}
catch (Exception ex)
{
Log("error");
}
return mappedOrder;
}
Run Code Online (Sandbox Code Playgroud)
制图:
Mapper.CreateMap<InterfaceOrder, Order>()
.ForMember(c => c.Name, op => op.ResolveUsing(data =>
{
if (Name.Length > 50)
{
throw new InterfaceException("Error!", ex);
}
else
{
return c.Name
}
}));
Run Code Online (Sandbox Code Playgroud) 我有以下RegEx:
[RegularExpression(@"^[^,']+$|^$", ErrorMessageResourceName = "AlphaNumeric", ErrorMessageResourceType = typeof(Resources.LocalizedStrings))]
Run Code Online (Sandbox Code Playgroud)
这当前允许除a和a之外的所有字符.但是我还需要排除"但到目前为止还没有能够,因为它结束了@符号之后的初始双引号.我已经搜索了Google的帮助,但没有一个答案似乎与我正在做的事情有关,或者似乎对我有用.
谁能指出我正确的方向?
编辑 - 感谢大家的帮助,使用同名的unicode为我工作.\ u0022见Anirudh的回答