AutoMapper DynamicMap对象vs匿名类型
本文关键字:类型 vs DynamicMap 对象 AutoMapper | 更新日期: 2023-09-27 18:14:04
在以下简单的场景中,为什么TestMethod1的输出是"test"而TestMethod2的输出是null?此外,如果你改变顺序并先运行TestMethod2,这两个方法都会输出null。
我刚开始使用AutoMapper,我没有很多经验,我真的需要使这个方法(以对象为参数)工作。有人能给我解释一下为什么它会这样工作,我能做些什么吗?
public partial class TestClass
{
public string Test { get; set; }
}
class Program
{
static void Main(string[] args)
{
TestMethod1();
TestMethod2(new { Test = "test" });
}
public static void TestMethod1()
{
TestClass test = new TestClass();
Mapper.DynamicMap(new { Test = "test" }, test);
Console.Out.WriteLine(test.Test);
}
public static void TestMethod2(object obj)
{
TestClass test = new TestClass();
Mapper.DynamicMap(obj, test);
Console.Out.WriteLine(test.Test);
}
}
代替
TestClass test = new TestClass();
Mapper.DynamicMap(obj, test);
可以用
TestClass test = (TestClass)Mapper.DynamicMap(obj, obj.GetType(), typeof(TestClass));
在两种情况下都使用这个;例如,不要创建TestClass
的实例——而是让Automapper来做)
这不是一个直接的答案,但更多的变通;我不确定为什么我写的有用而你写的不行——我正在进一步调查