如何从另一个项目引用一个项目的应用程序设置?

T.C*_*.C. 7 .net vb.net settings

在VB.Net项目中,您可以使用属性页面的"设置"选项卡来定义应用程序设置.要在代码中引用设置,请在VB中使用语法My.Settings.SettingName.

在"设置"选项卡上,您可以选择"访问修改器".它可能是"朋友"或"公共".据推测,当您选择"公共"时,您正在使其他程序集可以访问这些设置.但是,一旦选择了"Public",我就无法弄清楚从另一个项目中引用一个项目的设置的语法.事实上,我无法观察到使用"内部"与"公共"作为访问修饰符之间的任何区别.

我的问题:选择"公共"作为访问修饰符是否可以让其他程序集访问?如果是这样,从其他程序集引用设置的语法是什么?如果没有,"公共"做什么?

Han*_*ant 6

你把事情搞得一团糟.设置没有辅助功能修饰符,它们始终是公共的.但是,在Winforms应用程序中,您确实在控件的"属性"窗口中有一个"应用程序设置"属性.在顶部.还有一个Modifier属性.后者在VB.NET项目中默认为Friend,在C#app中为Private.这决定了控制变量的可访问性,而不是设置.

是的,My.Settings允许您访问存储控件属性值的设置.但这就是好消息结束的地方.您应始终将设置设计器中的设置范围设置为"用户".这样可以在程序启动时保存并恢复该值.

具有用户范围的设置存储在难以找回的文件中.这种文件的典型路径是C:\ Users\hpassant\AppData\Local\WindowsFormsApplication1\WindowsFormsApplication1._Url_2acx4ldi2zmg42elj3eyqq0snhqco4qe\1.0.0.0

第一部分是我,我的笔记本电脑的当前用户.路径名称的奇怪部分是哈希值,这是应用程序名称和版本唯一的值.当我编译应用程序时,可能还有其他类似于月亮的阶段.没有记录计算该哈希的算法.只是它将是我的应用程序的独特之处,不能被另一个应用程序踩踏.

这就是问题,一个应用程序无法找到另一个应用程序的用户作用域设置.如果这对您很重要,您将不得不放弃使用设置.并在一个众所周知的位置用XmlDocument替换它.

  • 是的,我认为这与我的答案有关.你不能*写*另一个应用程序的设置.除非他们在你知道*的可写位置.你知道他们在哪里得救吗? (2认同)