新闻中心
.NET怎么将一个匿名对象转换为强类型对象
答案:匿名对象无法直接转换为强类型,但可通过反射、序列化或第三方库实现属性映射。使用反射可遍历属性并复制值,适用于通用场景;JSON序列化通过序列化再反序列化实现,代码简洁但需类型兼容;高性能需求可选AutoMapper或表达式树缓存优化性能。

在 .NET 中,匿名对象本身是编译时生成的内部类,无法直接通过类型转换赋值给自定义的强类型对象。但可以通过反射、序列化或辅助方法实现属性级别的映射。
使用反射进行属性复制
通过反射读取匿名对象的属性,并将其值设置到目标强类型实例中:
public static T ToStrongType
{
var result = new T();
var sourceProps = anonymousObject.GetType().GetProperties();
var targetProps = typeof(T).GetProperties();
foreach (var sourceProp in sourceProps)
{
var targetProp = targetProps.FirstOrDefault(p => p.Name == sourceProp.Name && p.PropertyType == sourceProp.PropertyType);
if (targetProp != null && targetProp.CanWrite)
{
targetProp.SetValue(result, sourceProp.GetValue(anonymousObject));
}
}
return result;
}
VALL-E
VALL-E是一种用于文本到语音生成 (TTS) 的语言建模方法
134
查看详情
示例用法:
var anon = new { Name = "Alice", Age = 30 };
var person = ToStrongType
使用 JSON 序列化(推荐简单场景)
借助 System.Text.Json 或 Newtonsoft.Json 将匿名对象序列化再反序列化为目标类型:
// 使用 System.Text.Json
using System.Text.Json;
public static T ToStrongTypeJson
{
var json = JsonSerializer.Serialize(anonymousObject);
return JsonSeriali
zer.Deserialize
}
注意:该方式要求属性名称和类型兼容,且目标类型有公共无参构造函数。
使用表达式树或第三方库提升性能
如果频繁转换,反射性能较低。可考虑:
- AutoMapper:配置好映射规则后高效转换
- ExpressMapper / Mapster:支持匿名对象到强类型的自动映射
- 手写表达式树缓存赋值逻辑,避免重复反射
直接强制类型转换(如 (Person)anon)会编译失败或抛异常,因为匿名类型是密封的且不可见。
基本上就这些方法,JSON 反序列化最简洁,反射最通用,高性能场景建议用缓存映射。
以上就是.NET怎么将一个匿名对象转换为强类型对象的详细内容,更多请关注php中文网其它相关文章!
# 是一种
# 给国外网站做推广赚钱
# 品牌营销推广外包
# 网站优化效果好的公司
# 国际站关键词排名插件
# 温州有哪些seo视频
# 莱阳网站优化推广
# 营销推广显示赞助吗
# 云天下网站建设
# 东莞产品营销网站建设
# 运营营销推广学习
# 适用于
# 遍历
# php
# 更胜
# 对决
# 高性能
# 第三方
# 更有
# 转换为
# 序列化
# .net
# app
# json
# js
# java
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
在python-socketio事件处理器中安全访问Flask应用上下文
iwriter统一登录平台 iwrite账号密码登录页面
Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法
windows10怎么查看硬盘序列号_windows10硬盘id查询命令
支付宝如何管理隐私设置_支付宝隐私保护的配置技巧
C#中解析不规范的HTML为XML 常见的坑与解决办法
押井守高度称赞《辐射4》:玩了八年都停不下来!
拷贝漫画电脑版官网入口 拷贝漫画(PC版)在线直达
Win11怎么修改默认浏览器_Windows 11设置Chrome为默认
Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性
在哪找SublimeJ远程工具_SFTP插件配置教程
手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析
React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性
处理嵌套交互式控件:前端可访问性指南
苹果手机如何防止被恶意App追踪
Tailwind CSS line-clamp 布局问题解析与修复指南
解决 Express.js 中 PUT 请求密码修改失败的路由配置指南
怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】
狙击外星人小游戏开始_狙击外星人小游戏立即开始
J*a递归快速排序中静态变量导致数据累积问题的解决方案
C++指针和引用有什么区别_C++内存管理核心概念深度解析
Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换
漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接
Bing引擎入口最新2025 Bing搜索免费官方登录
深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量
高德地图公交到站提醒失败如何解决 高德提醒权限设置
解决Bootstrap卡片顶部边距导致背景图下移的问题
ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句
铁路12306改签能改到更早的车次吗_铁路12306改签提前车次规则
在J*a中如何使用Stream.map转换元素_Stream映射操作解析
TikTok评论显示延迟如何处理 TikTok评论刷新优化方法
曝R星经典之作开发图 设计简陋但信息密集!
J*aScript类型检查_j*ascript代码规范
快手极速版在线观看 官方网页版登录地址
字由网在线版登录地址 字由网网页版安全入口
Win11截图该按哪些键 Win11截屏完整流程解析【教程】
Win11怎么隐藏桌面图标 Win11一键隐藏所有桌面元素及恢复显示
php源码怎么在电脑上测试_电脑测试php源码方法步骤【教程】
J*aScript中localStorage数据的获取、清洗与格式化教程
铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧
解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException
TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法
163邮箱官方主页登录 直达网易邮箱登录核心页面
QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口
天猫2025双十一0点秒杀攻略 天猫爆款抢购时间
俄罗斯搜索引擎Yandex指南 附2025年免登录官网入口
痛风发作了怎么办? 快速止痛和后期饮食调理
《刺客信条:影》PS5 Pro和Switch 2画面对比
Win11如何使用Windows Sandbox Win11沙盒功能开启与使用教程【详解】
MAC如何安全彻底地删除文件_MAC使用终端命令确保文件无法被恢复


2025-11-05
浏览次数:次
返回列表