pBe 发表于 2017-7-4 09:38:07

q代表属性。设置。默认值

我有一个关于默认设置的问题。我对两个代码使用了基本相同的编码。一个用于Autocad,一个用于桌面。桌面版本的默认设置结果正常,但Autocad版本的行为有所不同。默认值仅在关闭Autocad任务并再次启动时适用。而桌面版本则立即应用默认值。
请查看附件。它仅包括Autocad版本。
预先感谢
pBe

**** Hidden Message *****

Atook 发表于 2017-7-4 15:34:04

不确定我是否理解这个问题,也许你可以发布一些代码?

n.yuan 发表于 2017-7-4 17:02:10

如果你说的是房产。Settings.Default(在C#中),你在项目的属性窗口的设置中添加的,那么,是的,它在EXE(桌面应用程序)和DLL中的行为是不同的。
您在项目中创建的设置的默认值作为资源数据嵌入到应用程序(EXE或DLL)中,然后
1。在EXE app中,设置最终确实到YourApp.exe.config中,你可以随时手动更改*.exe.config文件中的设置值,EXE app会从*.exe.config文件中读取设置数据,而不是使用内嵌的默认值;
2。在DLL app中,DLL构建/编译会创建一个YourApp。DLL.Config文件并保存设置(其中有默认的值)。但是,使用DLL的应用程序(本例中为AutoCAD)不会自动转到此*.dll.config来加载设置。理论上,编译完DLL后,你应该将*.dll.config中的设置合并到EXE app的aa.exe.config中(这里是acad.exe.config),而*.dll.config文件不需要和你的app一起部署;或者您需要编写代码来显式地让您的DLL从*.dll.config文件加载设置。在您的情况下,由于您没有将*.dll.config中的设置合并到acad.exe.config中,也没有专门从*.dll.config中加载设置的代码,因此dll代码将始终使用您在设计阶段输入的默认值,这些默认值嵌入在dll项目中。

pBe 发表于 2017-7-4 23:52:25


我确实发布了一个代码作为附件。[ 下载 0 次 ]我将重新保存并重新附加源代码。
这很有道理。我将编写一个代码,让 DLL 从文件配置文件加载设置。
谢谢你 n.元
pBe

n.yuan 发表于 2017-7-5 08:51:14

你可以在网上找到很多关于这个话题的讨论。以下是其中的一些:
https://www . sep . com/sep-blog/2010/09/05/configuration-settings-for-net-class-libraries-DLL/
https://www . code project . com/Tips/199441/DLL-with-configuration-file
https://stack overflow . com/questions/594298/c-sharp-DLL-config-file
HTH

pBe 发表于 2017-7-5 11:40:39

嗨,pBe,
另一个建议是使用字典,这样可以比系统变量用户保存更多的字符串*
页: [1]
查看完整版本: q代表属性。设置。默认值