gpt4 book ai didi

c# - AutoMapper DynamicMap 对象与匿名类型

转载 作者:行者123 更新时间:2023-11-30 12:27:38 26 4
gpt4 key购买 nike

在下面的简单场景中,为什么 TestMethod1 的输出为“test”而 TestMethod2 的输出为空?此外,如果您更改顺序并首先运行 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 这样做)

这还不是一个直接的答案,而是一个解决方法;我不确定为什么我写的有效而你写的无效 - 正在进一步调查

关于c# - AutoMapper DynamicMap 对象与匿名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24860535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com