当前位置: 首页 > wzjs >正文

廊坊做网站厂商定制泰州城乡建设网站

廊坊做网站厂商定制,泰州城乡建设网站,国外推广网站有哪些,泽国镇规划建设局网站场景一:存储复杂的实体属性数据 当需要存储一个实体的多个属性,且这些属性可能包含嵌套结构时,使用JSON可以方便地组织和管理这些数据。例如,存储一个建筑构件的详细信息,包括名称、尺寸、材质等。 using System; us…

场景一:存储复杂的实体属性数据

 

当需要存储一个实体的多个属性,且这些属性可能包含嵌套结构时,使用JSON可以方便地组织和管理这些数据。例如,存储一个建筑构件的详细信息,包括名称、尺寸、材质等。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.EditorInput;

using Newtonsoft.Json; // 需要引入Newtonsoft.Json库

 

namespace AcadJsonExample

{

    // 定义一个表示建筑构件的类

    public class BuildingComponent

    {

        public string Name { get; set; }

        public double Length { get; set; }

        public double Width { get; set; }

        public double Height { get; set; }

        public string Material { get; set; }

    }

 

    public class JsonSample

    {

        [Autodesk.AutoCAD.Runtime.CommandMethod("StoreComponentData")]

        public void StoreComponentData()

        {

            Document doc = Application.DocumentManager.MdiActiveDocument;

            Database db = doc.Database;

            Editor ed = doc.Editor;

 

            // 提示用户选择一个实体

            PromptEntityOptions promptEntityOptions = new PromptEntityOptions("\n请选择一个实体: ");

            PromptEntityResult promptEntityResult = ed.GetEntity(promptEntityOptions);

            if (promptEntityResult.Status != PromptStatus.OK)

            {

                return;

            }

 

            // 创建一个建筑构件实例并设置属性

            BuildingComponent component = new BuildingComponent

            {

                Name = "Wall",

                Length = 5.0,

                Width = 0.2,

                Height = 3.0,

                Material = "Brick"

            };

 

            // 将建筑构件实例序列化为JSON字符串

            string jsonData = JsonConvert.SerializeObject(component);

 

            // 将JSON字符串存储为实体的扩展数据(XData)

            using (Transaction trans = db.TransactionManager.StartTransaction())

            {

                try

                {

                    Entity entity = trans.GetObject(promptEntityResult.ObjectId, OpenMode.ForWrite) as Entity;

                    if (entity != null)

                    {

                        // 创建扩展数据的头部

                        ResultBuffer rb = new ResultBuffer(

                            new TypedValue((int)DxfCode.ExtendedDataRegAppName, "ComponentDataApp"),

                            new TypedValue((int)DxfCode.Text, jsonData)

                        );

                        entity.XData = rb;

                        trans.Commit();

                    }

                }

                catch (Exception ex)

                {

                    trans.Abort();

                    MessageBox.Show($"存储扩展数据时出错: {ex.Message}");

                }

            }

        }

    }

}

场景二:配置文件的读取

 

在AutoCAD插件开发中,可能需要从配置文件中读取一些参数或设置。JSON格式的配置文件易于编写和修改,且可以方便地反序列化为对象进行使用。

using System;

using System.IO;

using System.Windows.Forms;

using Newtonsoft.Json;

 

namespace AcadJsonConfigExample

{

    // 定义配置类

    public class AcadPluginConfig

    {

        public string DefaultLayerName { get; set; }

        public double DefaultLineWidth { get; set; }

        public bool EnableAutoSave { get; set; }

    }

 

    public class JsonConfigSample

    {

        public static void LoadConfig()

        {

            try

            {

                string configFilePath = @"C:\AcadPlugin\config.json"; // 假设配置文件路径

                if (File.Exists(configFilePath))

                {

                    string json = File.ReadAllText(configFilePath);

                    AcadPluginConfig config = JsonConvert.DeserializeObject<AcadPluginConfig>(json);

 

                    // 使用配置参数,例如输出配置信息

                    MessageBox.Show($"默认图层名: {config.DefaultLayerName}\n" +

                                    $"默认线宽: {config.DefaultLineWidth}\n" +

                                    $"是否启用自动保存: {config.EnableAutoSave}");

                }

                else

                {

                    MessageBox.Show("配置文件不存在。");

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show($"读取配置文件时出错: {ex.Message}");

            }

        }

    }

}

 

 

以上两个案例展示了JSON在AutoCAD二次开发中存储复杂数据和读取配置文件方面的应用,通过JSON的序列化和反序列化操作,可以方便地处理各种数据结构。


文章转载自:

http://aqD3KWOl.Lwtfx.cn
http://ig83ImHS.Lwtfx.cn
http://CpREYzeP.Lwtfx.cn
http://jFGLWWgy.Lwtfx.cn
http://hFhXR5Ut.Lwtfx.cn
http://FDAG9WGp.Lwtfx.cn
http://rtfxr0fo.Lwtfx.cn
http://UwudoSKL.Lwtfx.cn
http://AxUAimtP.Lwtfx.cn
http://YBTz3PEZ.Lwtfx.cn
http://PxmCJD5r.Lwtfx.cn
http://CiaXWRdu.Lwtfx.cn
http://HQXY0wfV.Lwtfx.cn
http://USxDQ0s8.Lwtfx.cn
http://3EKpKlpP.Lwtfx.cn
http://ca2gGikR.Lwtfx.cn
http://sodPmx0t.Lwtfx.cn
http://bWvKzXCV.Lwtfx.cn
http://V4BzmLUo.Lwtfx.cn
http://50hGgiiV.Lwtfx.cn
http://vQ0o6olQ.Lwtfx.cn
http://Kj0rJpOw.Lwtfx.cn
http://76wRiEmQ.Lwtfx.cn
http://VpjFOexG.Lwtfx.cn
http://HFrhrfhF.Lwtfx.cn
http://zFHuB3Qd.Lwtfx.cn
http://bnS2KTaz.Lwtfx.cn
http://P0bVAEZO.Lwtfx.cn
http://tWa6g5Rf.Lwtfx.cn
http://KBP44eGW.Lwtfx.cn
http://www.dtcms.com/wzjs/700271.html

相关文章:

  • 西安网站建设优化服务公司什么平台可以发广告引流
  • 网站建设代码走查个人微信公众平台注册流程
  • 北京网站运营优化公司宁夏网站seo
  • 简洁大方网站建设网站建设职位要求
  • 临沂网站开发多少钱做网站买计划书
  • 怎样建设VR网站做网站如何设计数据库
  • 专门做画册的网站店面设计图片
  • 网站分为四个步骤开发建设做动图的网站
  • 文档下载免费网站微网站建设收费
  • 邢台城乡建设局网站网站权限设计方案
  • 成都百度网站设计公司有哪些网站可以做视频
  • 电子商务网站建设可用性淘宝官网首页入口电脑版网址
  • 织梦网站修改使用教程新手学网站建设
  • 网站外链如何建设阿里云做网站
  • 如何在门户网站做推广方案收费网站解决方案
  • 收录好的网站有哪些制作app开发的公司
  • 不备案的网站很慢大宗商品交易平台
  • 二级域名如何绑定网站上传照片的网站赚钱
  • 做外贸门户网站网站每年要交钱吗
  • 响应式网站模版建站卓企做的网站怎么样
  • 组建网站开发团队电子商务和网站开发 职务
  • 浙江网站wordpress文件类型不支持
  • 网站优化外包多少钱注册公司的网站是什么
  • 规范 加强网站建设管理外包公司劳动合同
  • 服务器和域名都有了 怎么做网站长安seo排名优化培训
  • 官方网站建设投标书网站制作的内容包含
  • 全面的基础微网站开发苏州智能网站建设
  • 用asp做网站流程获取网站访客qq号码代码
  • 溧阳网站建设公司免费网页托管
  • seo网站推广软件排名百度网页制作步骤