首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏DotNet NB && CloudNative

    探究 C# dynamic动态类型本质

    id = 1, title = "hello world", completed = false, }; dynamic obj2 = new System.Dynamic.ExpandoObject " + value); } 打印如下: userId: 100 id: 1 title: hello world completed: False 而obj2则是System.Dynamic.ExpandoObject 又因为System.Dynamic.ExpandoObject实现了IDictionary<string, object? >因此可以通过向字典添加KeyValue对象的形式向ExpandoObject对象添加成员变量,用[key]方式访问内容。 world', 'completed': false }"; var obj1 = JObject.Parse(json); dynamic obj2 = new System.Dynamic.ExpandoObject

    50530编辑于 2023-08-30
  • 来自专栏草根专栏

    使用 dynamic 类型让 ASP.NET Core 实现 HATEOAS 结构的 RESTful API

    上一篇写的是使用静态基类方法的实现步骤: http://www.cnblogs.com/cgzl/p/8726805.html 使用dynamic (ExpandoObject)的好处就是可以动态组建返回类型 而使用ExpandoObject(dynamic)就可以解决这个问题. namespace SalesApi.Shared.Helpers { public static class ObjectExtensions { public static ExpandoObject property的值 var propertyValue = propertyInfo.GetValue(source); // 为ExpandoObject 取得源对象property的值 var propertyValue = propertyInfo.GetValue(source); // 为ExpandoObject

    1.5K60发布于 2018-04-19
  • 来自专栏CSharp编程大全

    C# 中的动态类型

    我们使用下面的程序来测试一下这个理论: Console.WriteLine("ExpandoObject inherits from System.Object: " + typeof(ExpandoObject ExpandoObject 动态类型 ExpandoObject 是一种方便的类型,允许设置和检索动态成员。 要用 ExpandoObject 处理任意 JSON,您可以编写以下程序: var exObj = JsonConvert.DeserializeObject<ExpandoObject>("{\"a\ 因为 ExpandoObject 继承自 System.Object,所以可以被拆箱成 DLR 类型。 是时候为 ExpandoObject 类型编写一个漂亮的单元测试了。使用 xUnit 作为测试框架,您将看到带有 Fact 属性的方法。

    4.7K50发布于 2021-04-02
  • 来自专栏草根专栏

    使用两种方法让 ASP.NET Core 实现遵循 HATEOAS 结构的 RESTful API

    动态类型方案: 需要使用例如匿名类或ExpandoObject等, 对于单个资源可以使用ExpandoObject, 而对于集合类资源则使用匿名类. 第一种方案 -- 使用dynamic类型 使用dynamic (ExpandoObject)的好处就是可以动态组建返回类型, 之前使用的是ViewModel, 如果想返回结果的话, 肯定需要把ViewModel 而使用ExpandoObject(dynamic)就可以解决这个问题. 取得源对象property的值 var propertyValue = propertyInfo.GetValue(source); // 为ExpandoObject throw new ArgumentNullException("source"); } var expandoObjectList = new List<ExpandoObject

    2.7K110发布于 2018-04-08
  • 来自专栏谭广健的专栏

    C# mvc视图数据传输

    好吧,这些都不是重点,重点是在控制器向视图竟然无法直接传结果List..那只能通过ExpandoObject传输。 Ordername= t.OrderFinalCustomer });//获取LIST//-------------------------------------------List<ExpandoObject > listDyn = new List<ExpandoObject>();//定义传输的ExpandoObject foreach (var item in WarehouseIn_List )//List 转化传输 listDyn { dynamic obj = new ExpandoObject(); obj.code

    59430编辑于 2022-11-12
  • 来自专栏DotNet NB && CloudNative

    C#dynamic动态类型本质探究

    id = 1, title = "hello world", completed = false, }; dynamic obj2 = new System.Dynamic.ExpandoObject " + value); } 打印如下: userId: 100 id: 1 title: hello world completed: False 而obj2则是System.Dynamic.ExpandoObject 又因为System.Dynamic.ExpandoObject实现了IDictionary<string, object? >因此可以通过向字典添加KeyValue对象的形式向ExpandoObject对象添加成员变量,用[key]方式访问内容。 world', 'completed': false }"; var obj1 = JObject.Parse(json); dynamic obj2 = new System.Dynamic.ExpandoObject

    75430编辑于 2023-08-30
  • 来自专栏DotNet NB && CloudNative

    如何把一个json字符串,转成C#动态类?

    title = "hello world", completed = false, }; // 堆代码 duidaima.com dynamic obj2 = new System.Dynamic.ExpandoObject ": " + value); } 打印如下: userId: 100 id: 1 title: hello world completed: False 而obj2则是System.Dynamic.ExpandoObject 又因为System.Dynamic.ExpandoObject实现了IDictionary<string, object? >因此可以通过向字典添加KeyValue对象的形式向ExpandoObject对象添加成员变量,用[key]方式访问内容。 world', 'completed': false }"; var obj1 = JObject.Parse(json); dynamic obj2 = new System.Dynamic.ExpandoObject

    67220编辑于 2023-08-30
  • 来自专栏kwcode

    MVC 控制器中传递dynamic(对象) 给视图

    解决方式:使用  ExpandoObject类 dynamic viewModel = new ExpandoObject(); viewModel.UserID = 5016

    1.3K50发布于 2018-03-14
  • 来自专栏雪雁的专栏

    Excel模板导出之动态导出

    说明 目前Magicodes.IE已支持Excel模板导出时使用JObject、Dictionary和ExpandoObject来进行动态导出,具体使用请看本篇教程。 5.使用ExpandoObject完成动态导出 同上,代码如下所示: dynamic data = new ExpandoObject(); data.Company = "雪雁"; data.Address = "湖南长沙"; data.Contact = "雪雁"; data.Tel = "136xxx"; data.BookInfos = new List<ExpandoObject>() { }; dynamic book1 = new ExpandoObject(); book1.No = "A1"; book1.RowNo = 1; book1.Name = "Docker+Kubernetes v=1585121965"; book1.Remark = "买买买"; data.BookInfos.Add(book1); dynamic book2 = new ExpandoObject();

    1.9K20发布于 2021-03-25
  • 来自专栏magicodes

    Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库

    row1 row 2 col 1 row 2 col 2 row2 header 1 header 2 header1 row 2 col 1 row 2 col 2 row2 添加对ExpandoObject string fields = "FirstName,LastName"; // 可自定义导出想要的字段 var expandoObjectList = new List<ExpandoObject ​ foreach (var person in personList) { var shapedObj = new ExpandoObject Directory.GetCurrentDirectory(), "dynamicExportExcel.xlsx"); var result = await exporter.ExportAsByteArray<ExpandoObject

    63020发布于 2020-09-18
  • 来自专栏雪雁的专栏

    Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库

    row1 row 2 col 1 row 2 col 2 row2 header 1 header 2 header1 row 2 col 1 row 2 col 2 row2 添加对ExpandoObject string fields = "FirstName,LastName"; // 可自定义导出想要的字段 var expandoObjectList = new List<ExpandoObject } foreach (var person in personList) { var shapedObj = new ExpandoObject Directory.GetCurrentDirectory(), "dynamicExportExcel.xlsx"); var result = await exporter.ExportAsByteArray<ExpandoObject

    63010发布于 2020-09-18
  • 来自专栏王清培的专栏

    .NET框架设计(常被忽视的框架设计技巧)

    AddExten(this ExpandoObject entity) 21 { 22 dynamic dy = entity as dynamic; 23 dy.Add = new Func<ExpandoObject>(() => { Console.WriteLine("add " + entity); return entity; }); 24 WhereExten<T>(this ExpandoObject entity, Func<T, bool> where) 34 { 35 dynamic dy 36 dy.Where = where; 37 return entity; 38 } 39 } 40 } 扩展方法需要扩展 ExpandoObject 对象,DLR在运行时使用的是ExpandoObject对象实例,所以我们不能够直接扩展Dynamic关键字; 1 Employee employee1 = new Employee() { EId =

    1.7K80发布于 2018-01-08
  • 来自专栏Web开发之路

    C# 学习笔记(16)—— 动态类型

    具体来说,.Net 中支持3种实现动态行为的方式: 使用 ExpandoObject 使用 DynamicObject 实现 IDynamicMetObjectProvider 接口 下面分别介绍 使用 ExpandoObject 来实现动态行为 ExpandoObject 时实现动态行为最简单的方式,其实现代码如下: using System; using System.Dynamic; namespace class Program { static void Main(string[] args) { dynamic d = new ExpandoObject Console.WriteLine(d.AddMethod(5)); Console.ReadKey(); } } } 使用 DynamicObject 来实现动态行为 除了使用 ExpandoObject

    50610编辑于 2023-10-20
  • 来自专栏me的随笔

    ASP.NET MVC5中View-Controller间数据的传递

    RouteData Model Binding Form 使用和Action参数同名的变量进行传递 Cookie 对于Controller向View中传值则列举了以下几种方式: 单个值的传递 Json 匿名类型 ExpandoObject ExpandoObject 上面提到,直接使用匿名类型向View中传递数据是行不通的,可以使用ExpandoObject类型对象来替代匿名类型 public ActionResult Index() { dynamic user = new ExpandoObject(); user.UserName = "雪飞鸿"; user.Age = 24; return View

    3.5K10发布于 2018-09-05
  • 来自专栏不止dotNET

    dotNET Core 3.X 使用 Web API

    同样的接口在前端不同的场景下需要返回不一样的字段数据,一种方式是创建很多不同的接口,返回不同的 Dto 的结果,但这样做非常繁琐,可以通过 ExpandoObject 来实现按客户端的需要进行返回结果, 该扩展方法用于根据传进的字段参数来组装返回的结果,代码如下: public static class IEnumerableExtension { public static IEnumerable<ExpandoObject throw new ArgumentNullException(nameof(source)); } var objectList = new List<ExpandoObject propertyInfo); } } foreach (T t in source) { var obj=new ExpandoObject

    2K30发布于 2020-04-08
  • 来自专栏技术博客

    Dynamic 动态类型 和双问号??的使用

    创建一个dynamic类型的对象需要使用一个特殊的构建器叫ExpandoObject。 dynamic aehyok = new ExpandoObject(); aehyok.Name = "aehyok"; aehyok.Age = "24

    1.7K20发布于 2018-09-11
  • 来自专栏c#分享专栏

    C#的动态加载和使用类型

    这为创建灵活的数据结构提供了可能:dynamic expando = new ExpandoObject();expando.Property = "Value";expando.Method = new Action(() => Console.WriteLine("Hello from ExpandoObject!"))

    4.8K00编辑于 2024-10-09
  • 来自专栏菩提树下的杨过

    c#4.0中的动态编程

    Program { public static void Main(string[] args) { dynamic obj = new ExpandoObject

    73480发布于 2018-01-22
  • 来自专栏.Net Core技术分享

    C#规则引擎RulesEngine

    var converter = new ExpandoObjectConverter(); dynamic input1 = JsonConvert.DeserializeObject<ExpandoObject >(basicInfo, converter); dynamic input2 = JsonConvert.DeserializeObject<ExpandoObject>(orderInfo, converter); dynamic input3 = JsonConvert.DeserializeObject<ExpandoObject>(telemetryInfo, converter

    1.7K20发布于 2021-03-08
  • 来自专栏全栈程序员必看

    点菜宝基站信道设置_点菜宝怎么连接基站

    WebClient webClient = new WebClient()) { NameValueCollection postValues = Init(); dynamic user = new ExpandoObject response = Encoding.UTF8.GetString(responseArray); // 根据返回值判断 dynamic obj = serializer.Deserialize<ExpandoObject

    72740编辑于 2022-09-20
领券