<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ultramand的博客，重生之我在cad上二次开发猛猛敲C#代码~]]></title><description><![CDATA[核心聚焦与特色
围绕 AutoCAD C# 二次开发 与 .NET 生态 展开，涵盖 WPF、WebAPI、MVVM、Entity Framework 等主流技术栈的实战经验。博主凭借建筑与制造业背景，产出大量可直接落地的开发技巧与解决方案]]></description><link>https://blog.csdn.net/ultramand</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; ultramand]]></copyright><item><title><![CDATA[一个方法三千行：我是如何从“业务分支地狱”里爬出来的]]></title><link>https://blog.csdn.net/ultramand/article/details/165123496</link><guid>https://blog.csdn.net/ultramand/article/details/165123496</guid><author>ultramand</author><pubDate>Sat, 12 Sep 2026 18:31:35 +0800</pubDate><description><![CDATA[本文讲述作者从建筑设计转行C#开发后，接手一个三千行、嵌套多层else if与switch的“屎山”代码，陷入调试地狱。通过反思发现，系统因长期“先能用再说”的迭代积累而成。最终采用充血模型与状态模式重构：将业务逻辑内聚至领域对象，用独立类封装状态行为，彻底解耦条件判断与执行逻辑，实现可读、可维护、可扩展的架构升级。]]></description><category></category></item><item><title><![CDATA[C# 里角度和弧度到底怎么转？——从一行 CAD 代码讲起]]></title><link>https://blog.csdn.net/ultramand/article/details/165005825</link><guid>https://blog.csdn.net/ultramand/article/details/165005825</guid><author>ultramand</author><pubDate>Fri, 11 Sep 2026 19:36:09 +0800</pubDate><description><![CDATA[本文以一行CAD代码为例，通俗讲解C#中角度与弧度的转换。核心要点：CAD使用弧度，人习惯用度，赋值前必须将度转为弧度。DegreeToAngle()（度→弧度）正确，AngleToDegree()（弧度→度）方向相反，不可误用。错误使用会导致图形旋转异常但不报错。口诀：CAD要弧度，给值前先转；名字别搞反，读回再转回。]]></description><category></category></item><item><title><![CDATA[Prism EventAggregator 深度解析：从基础用法到多播匹配与生命周期管理]]></title><link>https://blog.csdn.net/ultramand/article/details/164880913</link><guid>https://blog.csdn.net/ultramand/article/details/164880913</guid><author>ultramand</author><pubDate>Fri, 11 Sep 2026 00:45:00 +0800</pubDate><description><![CDATA[摘要：本文深度解析Prism的EventAggregator机制，阐明其通过发布-订阅模式实现模块间松耦合通信。重点剖析keepSubscriberReferenceAlive参数：默认弱引用避免内存泄漏，强引用需手动Unsubscribe以防泄漏。结合SubscriptionToken实现精准生命周期管理，提供多场景最佳实践，确保事件通信安全高效。]]></description><category></category></item><item><title><![CDATA[从建筑设计院转行C#上位机：我的第一次面试，尴尬到想钻地缝]]></title><link>https://blog.csdn.net/ultramand/article/details/164880336</link><guid>https://blog.csdn.net/ultramand/article/details/164880336</guid><author>ultramand</author><pubDate>Fri, 11 Sep 2026 00:30:00 +0800</pubDate><description><![CDATA[从建筑设计院转行C#上位机开发，自学八个月后首次面试惨遭“暴击”。面对Prism、MVVM、EF Core等技术追问，我因缺乏实战经验频频卡壳：不懂EventAggregator的弱引用机制，不会用AsSplitQuery避免笛卡尔积，更不知AsNoTracking()对性能的关键影响。真实经历揭示转行真相——光会跑代码不够，必须深挖框架原理与性能优化。代码示例与细节剖析，助你避开我的坑。]]></description><category></category></item><item><title><![CDATA[C# 与 AutoLISP 双路线实战：AutoCAD「选择实体另存副本」命令完整教程]]></title><link>https://blog.csdn.net/ultramand/article/details/164839899</link><guid>https://blog.csdn.net/ultramand/article/details/164839899</guid><author>ultramand</author><pubDate>Thu, 10 Sep 2026 19:30:00 +0800</pubDate><description><![CDATA[面向零基础小白的严谨技术博文 —— 从原理到代码，两种方案任你选]]></description><category></category></item><item><title><![CDATA[C# AutoCAD 二次开发中的事务（Transaction）深度剖析：从基础原理到高级应用]]></title><link>https://blog.csdn.net/ultramand/article/details/164757303</link><guid>https://blog.csdn.net/ultramand/article/details/164757303</guid><author>ultramand</author><pubDate>Wed, 09 Sep 2026 22:27:36 +0800</pubDate><description><![CDATA[本文深度剖析C# AutoCAD二次开发中的事务机制，强调其在保障原子性、线程安全与资源管理中的核心作用。重点阐述“黄金法则”——必须使用using语句管理事务，避免忘记提交或未结束事务的常见错误。深入讲解打开模式、对象升级降级、嵌套事务及事务组的应用，揭示性能陷阱与高级控制策略。强调事务仅在主线程中有效，杜绝后台线程操作，确保插件稳定高效。]]></description><category></category></item><item><title><![CDATA[ASP.NET Core Identity 从入门到实战：常见问题与解决方案]]></title><link>https://blog.csdn.net/ultramand/article/details/164632117</link><guid>https://blog.csdn.net/ultramand/article/details/164632117</guid><author>ultramand</author><pubDate>Tue, 08 Sep 2026 22:14:00 +0800</pubDate><description><![CDATA[<think>我们根据要求，需要根据提供的内容生成≤150字的文章摘要。内容是关于ASP.NET Core Identity的常见问题和解决方案。需要简洁概括核心内容。注意字数限制。</think>本文总结了ASP.NET Core Identity实战中的三个常见问题：“DbSet创建失败”需正确定义实体并重建迁移；“SecurityStamp为null”可在构造函数或创建时生成；“IDENTITY_INSERT错误”应避免手动设置自增Id。提供了具体代码示例和修复方案，帮助开发者快速排错。]]></description><category></category></item><item><title><![CDATA[从设计师到开发者：C# AutoCAD 二次开发完整学习路线与实践指南（详解版）]]></title><link>https://blog.csdn.net/ultramand/article/details/164620863</link><guid>https://blog.csdn.net/ultramand/article/details/164620863</guid><author>ultramand</author><pubDate>Tue, 08 Sep 2026 21:30:00 +0800</pubDate><description><![CDATA[<think>我们根据给定内容生成≤150字的文章摘要。注意摘要要简洁，涵盖主要信息：从设计师转C# AutoCAD二次开发的学习路线，包含C#基础、环境搭建、第一个插件示例等。不超过150字。</think>本文为设计师提供C# AutoCAD二次开发完整路线：先学C#基础与.NET进阶（委托、LINQ），再搭建Visual Studio环境，引用acmgd.dll等库，通过NETLOAD加载插件，用事务API绘制图形，附可直接运行的代码示例，助力零基础写出首个CAD插件。]]></description><category></category></item><item><title><![CDATA[C# AutoCAD二次开发中的块（Block）完全指南]]></title><link>https://blog.csdn.net/ultramand/article/details/164457086</link><guid>https://blog.csdn.net/ultramand/article/details/164457086</guid><author>ultramand</author><pubDate>Mon, 07 Sep 2026 20:00:00 +0800</pubDate><description><![CDATA[在AutoCAD的.NET二次开发中，**块（Block）** 是最核心、最常用的数据结构之一。无论是标准件库、图框标题栏，还是设备符号，块都是组织和管理图形数据的基本单元。本文将从零开始，带你全面认识块的世界。]]></description><category></category></item><item><title><![CDATA[AutoCAD .NET 二次开发深度解析：Editor.SetImpliedSelection 的正确使用与实战场景]]></title><link>https://blog.csdn.net/ultramand/article/details/164367512</link><guid>https://blog.csdn.net/ultramand/article/details/164367512</guid><author>ultramand</author><pubDate>Fri, 04 Sep 2026 20:00:00 +0800</pubDate><description><![CDATA[本文基于 Autodesk 官方论坛讨论 How to use Editor.SetImpliedSelection 及官方文档，系统梳理 SetImpliedSelection 的使用方法、关键陷阱与实际工程应用。]]></description><category></category></item><item><title><![CDATA[CAD 线宽“隐身”之谜：从 LWDISPLAY系统变量到 .NET 二次开发实战]]></title><link>https://blog.csdn.net/ultramand/article/details/164338272</link><guid>https://blog.csdn.net/ultramand/article/details/164338272</guid><author>ultramand</author><pubDate>Thu, 03 Sep 2026 18:12:37 +0800</pubDate><description><![CDATA[<think>我们根据用户要求，基于提供的文章生成摘要，不超过150字。文章内容是关于CAD线宽显示问题的分析与解决，包括LWDISPLAY变量、.NET开发中的处理等。摘要需简洁概括核心内容，控制在150字内。</think>本文剖析CAD线宽“显示不粗”的根因——LWDISPLAY系统变量默认为0，导致忽略线宽渲染；并给出标准排查步骤与.NET C#二次开发中精准控制线宽及开启显示的代码示例，强调通过Application.SetSystemVariable设置变量，确保插件环境下线宽效果即时可见。]]></description><category></category></item><item><title><![CDATA[AutoCAD .NET 二次开发中的 CommandMethod 特性：深度解析与实践指南]]></title><link>https://blog.csdn.net/ultramand/article/details/164305536</link><guid>https://blog.csdn.net/ultramand/article/details/164305536</guid><author>ultramand</author><pubDate>Wed, 02 Sep 2026 23:04:46 +0800</pubDate><description><![CDATA[<think>我们根据内容生成摘要，要求≤150字。内容是关于AutoCAD .NET二次开发中CommandMethod特性的深度解析，包括7个构造函数重载和CommandFlags枚举，以及实践指南。摘要需概括核心点，简洁。</think>CommandMethod 特性是 AutoCAD .NET 开发的核心机制，用于定义命令。本文解析其 7 种构造函数重载，覆盖全局名、组名、本地化、行为标志、上下文菜单及帮助配置，详解各参数与内部初始化，并解读 CommandFlags 枚举，提供实践指南与速查表。]]></description><category></category></item><item><title><![CDATA[AutoCAD .NET二次开发中的异常处理：`System.Exception`与`Autodesk.AutoCAD.Runtime.Exception`的抉择]]></title><link>https://blog.csdn.net/ultramand/article/details/164258305</link><guid>https://blog.csdn.net/ultramand/article/details/164258305</guid><author>ultramand</author><pubDate>Tue, 01 Sep 2026 20:00:00 +0800</pubDate><description><![CDATA[<think>我们根据要求，需要根据提供的内容生成≤150字的文章摘要。内容是关于AutoCAD .NET二次开发异常处理的文章，提到System.Exception和Autodesk.AutoCAD.Runtime.Exception的冲突、继承关系、ErrorStatus枚举以及最佳实践。需要简洁概括核心内容。摘要不超过150字。</think>本文深入解析AutoCAD .NET开发中System.Exception与Autodesk.AutoCAD.Runtime.Exception的命名冲突及继承]]></description><category></category></item><item><title><![CDATA[程序员不会英文，真的活不下去吗？我用 5 年血泪经验告诉你真相]]></title><link>https://blog.csdn.net/ultramand/article/details/163997664</link><guid>https://blog.csdn.net/ultramand/article/details/163997664</guid><author>ultramand</author><pubDate>Sun, 23 Aug 2026 15:17:18 +0800</pubDate><description><![CDATA[我见过太多人，因为"英文不好"这个借口，迟迟不敢开始学编程。英文不好，不是你不学编程的理由。不会起名？uTools 聚合翻译 + IDE 插件帮你看不懂文档？AI 帮你翻译看不懂报错？复制粘贴给 AI找不到教程？中文社区一大堆真正决定你能走多远的，不是英文水平，而是：愿不愿意动手写愿不愿意查资料愿不愿意把 a1、a2 改成有意义的名字问题答案程序员需要英文很好吗？不需要，够用就行不会英文能写代码吗？能，工具帮你搞定 90%可以用 a1、a2 命名吗？可以，但别怪同事骂你怎么起好英文名？]]></description><category></category></item><item><title><![CDATA[微信小程序 + .NET 后端开发调试完整解决方案]]></title><link>https://blog.csdn.net/ultramand/article/details/163983751</link><guid>https://blog.csdn.net/ultramand/article/details/163983751</guid><author>ultramand</author><pubDate>Sun, 23 Aug 2026 02:24:36 +0800</pubDate><description><![CDATA[最近在开发一个小程序项目时，后端使用 ASP.NET Core 8.0，前端是微信小程序。从开发环境搭建到真机调试，遇到了各种让人抓狂的问题：电脑上一切正常手机预览就是不行；API 请求成功了但图片死活加载不出来；真机调试局域网连接失败；内网穿透配置好了但总被微信拦截...

花了几天时间彻底解决后，把这些经验整理出来，希望能帮你少走弯路。

温馨提示： 本文所有域名、IP 地址均为虚构示例，仅供学习参考。]]></description><category></category></item><item><title><![CDATA[深入浅出 AutoCAD .NET 状态栏进度条：从卡死到流畅]]></title><link>https://blog.csdn.net/ultramand/article/details/163701718</link><guid>https://blog.csdn.net/ultramand/article/details/163701718</guid><author>ultramand</author><pubDate>Wed, 12 Aug 2026 21:15:00 +0800</pubDate><description><![CDATA[AutoCAD .NET 进度条优化方案 本文针对 AutoCAD .NET 开发中进度条显示问题，提出了一套完整的优化解决方案。传统 ProgressMeter 类存在启动不显示、文字不可动态更新等问题，社区常用的 DoEvents 方法虽能强制刷新但存在重入风险。作者创新性地结合 ProgressMeter、MODEMACRO 状态栏变量和 WPF 的 Dispatcher 机制，封装出 CadProgressManager 类，实现了流畅的进度显示效果。该方案在保持 AutoCAD 原生功能的基础上，]]></description><category></category></item><item><title><![CDATA[深入浅出 AutoCAD .NET 进度条：从踩坑到精通]]></title><link>https://blog.csdn.net/ultramand/article/details/163700026</link><guid>https://blog.csdn.net/ultramand/article/details/163700026</guid><author>ultramand</author><pubDate>Wed, 12 Aug 2026 20:15:00 +0800</pubDate><description><![CDATA[本文详细探讨了 AutoCAD .NET API 中 ProgressMeter 类的使用方法和常见问题。作者通过实际开发案例，分享了从错误代码到正确实现的过程。关键内容包括： ProgressMeter 的基本用法：Start()、SetLimit()、MeterProgress() 和 Stop() 方法的正确调用顺序和注意事项。 常见错误分析：包括循环边界问题、消息不能动态更新、界面卡死等问题的解决方法。 深入原理：解释了 ProgressMeter 的本质是 AutoCAD 底层类的封装，其显示行为]]></description><category></category></item><item><title><![CDATA[MediatR 从零到精通：.NET WebAPI 项目中的中介者模式实战指南]]></title><link>https://blog.csdn.net/ultramand/article/details/163642588</link><guid>https://blog.csdn.net/ultramand/article/details/163642588</guid><author>ultramand</author><pubDate>Mon, 10 Aug 2026 22:22:24 +0800</pubDate><description><![CDATA[本文介绍了如何在.NET WebAPI项目中使用MediatR中介者模式，通过"吉他培训学校管理系统"案例演示其核心概念和实战应用。文章首先用餐厅点餐的类比解释MediatR的作用，相比传统直接依赖服务的方式，MediatR通过中介者解耦控制器和业务逻辑。然后详细分析了传统方式的痛点（依赖臃肿、重复代码等）和MediatR的解决方案（解耦、统一处理、职责清晰等）。重点讲解了IRequest接口作为请求载体的作用，区分Command和Query的不同用途，并展示了实际代码示例。最后提及了调试技巧和高级功能如管]]></description><category></category></item><item><title><![CDATA[数列极限的定义]]></title><link>https://blog.csdn.net/ultramand/article/details/163646013</link><guid>https://blog.csdn.net/ultramand/article/details/163646013</guid><author>ultramand</author><pubDate>Mon, 10 Aug 2026 22:21:45 +0800</pubDate><description><![CDATA[这篇文章用生动形象的例子和通俗易懂的语言，向读者解释了高等数学中"极限"这一核心概念。作者从"永远走不到"的约会故事切入，引出极限"无限接近"的思想本质；通过排队打饭、数列驯服等日常比喻，将抽象的数学概念具象化；并创造性地用"打赌游戏"来解释严谨的ε-N定义。文章既揭示了极限的数学特性（唯一性、有界性、四则运算），又赋予其人生哲理——如同数列无限趋近极限值，人生也是一个不断接近理想自我的过程。全文在科普数学知识的同时，传递了温暖的人文关怀，让读者感受到数学不仅是公式，更是一种描述世界和人生的语言。]]></description><category></category></item><item><title><![CDATA[AutoCAD .NET 二次开发：深入解析标注（Dimension）体系与实战]]></title><link>https://blog.csdn.net/ultramand/article/details/163493112</link><guid>https://blog.csdn.net/ultramand/article/details/163493112</guid><author>ultramand</author><pubDate>Wed, 05 Aug 2026 19:15:00 +0800</pubDate><description><![CDATA[在C# AutoCAD二次开发中，这些类直接对应了不同功能的CAD标注和图形元素。下面这个表格详细整理了它们的对应关系、关键属性和开发要点，希望能帮你建立起清晰的映射。]]></description><category></category></item></channel></rss>