吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 228|回复: 3
上一主题 下一主题
收起左侧

[讨论] C# AutoMapper 映射到动态对象或从动态对象映射?报错??

[复制链接]
跳转到指定楼层
楼主
Pojie1999.0909 发表于 2024-11-21 16:11 回帖奖励
官方教程:Dynamic and ExpandoObject Mapping — AutoMapper documentation

代码如下:
[C#] 纯文本查看 复制代码
[Fact]
[Fact]
public static void Test_DynamicAndExpandoObjectMapping()
{
    // AutoMapper可以在没有任何显式配置的情况下映射到动态对象或从动态对象映射:
    dynamic foo = new MyDynamicObject();
    foo.Bar = 5;
    foo.Baz = 6;
    var configuration = new MapperConfiguration(cfg => { });
    var mapper = configuration.CreateMapper();
    var result = mapper.Map<Foo>(foo);
    Assert.Equal(5, ((Foo)result).Bar);
    Assert.Equal(6, ((Foo)result).Baz);
}

/// <summary>
/// Foo.
/// </summary>
internal class Foo
{
    /// <summary>
    /// Gets or sets Bar.
    /// </summary>
    public int Bar { get; set; }

    /// <summary>
    /// Gets or sets Baz.
    /// </summary>
    public int Baz { get; set; }

    /// <summary>
    /// Gets or sets InnerFoo.
    /// </summary>
    public Foo InnerFoo { get; set; }
}

/// <summary>
/// MyDynamicObjec.
/// </summary>
internal class MyDynamicObject
{
    /// <summary>
    /// Gets or sets Bar.
    /// </summary>
    public int Bar { get; set; }

    /// <summary>
    /// Gets or sets Baz.
    /// </summary>
    public int Baz { get; set; }
}}


报错信息:
[C#] 纯文本查看 复制代码
Message:&#8201;
  Microsoft.CSharp.RuntimeBinder.RuntimeBinderException : “Map”方法没有采用“1”个参数的重载

Stack Trace:&#8201;
  CallSite.Target(Closure , CallSite , IMapper , Object )
  UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
  DynamicAndExpandoObjectMappingTest.Test_DynamicAndExpandoObjectMapping()&#8201;line&#8201;28

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
凉游浅笔深画眉 发表于 2024-11-21 17:50
本帖最后由 凉游浅笔深画眉 于 2024-11-21 17:53 编辑

MyDynamicObject 应该继承 DynamicObject
3#
killjd 发表于 2024-11-21 19:50
4#
chen714714 发表于 2024-11-21 23:20
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 02:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表