我用什么来替换从AutoMapper 3中删除的ToNullSafeString()?

时间:2015-11-13 05:42:28

标签: automapper

我使用AutoMapper 3.2.1.0使用ToNullSafeString()方法编写代码。 我将NUGet包升级到4.1.1.0,我再也找不到他们的包中的方法。有人知道更换功能的推荐方法吗?是否有一个功能相同的新结构?如果是这样,我无法弄清楚它是什么。我也找不到它被删除的原因。

1 个答案:

答案 0 :(得分:1)

这个问题实际上已在下面的几条评论中得到了很好的回答。为了完整起见,这里有几个解决方案的实际实现。

简短回答

可能是最简单和最佳的解决方案:将.ToNullSafeString()的所有实例替换为?.ToString()。这样做也是如此,但使用内置于较新版本的.Net中的功能,而不是依赖于外部扩展方法。

替代答案

如果您从早期版本的Automapper中获得了ToNullSafeString()方法的大量调用,并且由于某种原因或某些原因,您无法或不想通过所有代码并立即编辑它,你可以使用它。

将以下类添加到项目中,并确保可以从之前调用Automapper方法的任何类中访问它。那些调用将自动指向此。

public static class NullSafeStringHelper
{
    public static string ToNullSafeString(this object value)
    {
        return value?.ToString();
    }
}