Tag: 设置

正确使用C#属性

private List _dates; public List Dates { get { return _dates; } set { _dates = value; } } 要么 public List Dates { get; set; } 我一直用前者,是不正确还是不好的做法? 我从未想过我可以使用第二个选项。 我喜欢让我的封装变量以下划线开头,所以我可以将它们与方法参数区分开来。 而我总是那样做。 是否有可能使用第一个选项会导致额外的List对象被实例化,然后整个_dates被替换为value ,还是比它更智能? 此外,哪个是行业中最突出的还是完全主观的?

C#Settings.Default.Save()没有保存?

这个bug很不寻常。 基本上我的代码将更改Settings.Default.Example然后保存并重新启动程序。 然后在加载时,它会显示一个消息框。 奇怪的是,它在表单加载时显示一个空值。 这是我的代码: Main.cs private void Button1_Click(object sender, EventArgs e) { Settings.Default.Example = “Somevalue”; //Sets a value to the settings Settings.Default.Save(); // Save it MessageBox.Show(Settings.Default.Example); //Confirming it has been saved Application.Restart(); } private void Main_Load(object sender, EventArgs e) { MessageBox.Show(Settings.Default.Example); // Here is the weird part, it shows empty. } 单击按钮后, MessageBox将显示“Somevalue”,然后applcation重新启动,显示的MessageBox为空。 但是,通过再次单击该按钮重新启动该过程并重新启动它会显示“Somevalue” […]

不同的应用程序设置取决于配置模式

是否有人知道我可以在.Net应用程序中设置应用程序当前开发模式的应用程序(或用户)级别设置? IE:调试/发布 更具体地说,我有一个url引用我的应用程序设置中保存的webservices。 在发布模式期间,我希望这些设置在调试模式期间指向http://myWebservice.MyURL.com我希望这些设置为http://myDebuggableWebService.MyURL.com 。 有任何想法吗?

存储UI设置的最佳做法?

我们目前正在计划一个更大的WPF LoB应用程序,我想知道其他人认为是存储大量UI设置的最佳实践,例如 扩张国 菜单订单 调整属性 等等… 我不喜欢使用提供的SettingsProvider(即App.config文件)拥有数十个存储值的想法,尽管它可以用于使用自定义SettingsProvider将其存储在嵌入式数据库中。 能够使用某种数据绑定也是一个问题。 有没有人有同样的问题? 你做了什么来存储很多用户设置?

自定义枚举作为C#中的应用程序设置类型?

如果在C#中有一个枚举: [Serializable] public enum OperatingSystem { Windows, Macintosh } 对于我的应用程序,我使用应用程序设置,我可以在其中选择应该设置的类型。 我想当我选择浏览时 ,我可以选择我的枚举或输入完全限定的路径来选择枚举作为类型。 编辑: 我将类型设置为我的枚举,但在值(Windows,Macintosh应该是)中,只有Windows可见,我可以输入任何字符串。

在更改汇编/文件版本后保留用户的设置

背景 我有一个用C#编写的简单WinForms应用程序。 我讨论了一段时间的部署解决方案,但最终决定放弃ClickOnce,因为一些约束是至关重要的限制。 相反,我已经改编了一个简单的解决方案,通过程序集/文件版本(我保持同步)在应用程序的属性中对应用程序进行版本控制。 我正在通过安装项目(* .msi)进行部署。 我将最新的汇编版本号在线存储在XML文件中,以及最新的安装程序文件。 在运行时,我只是在线检查Application.ProductVersion对照最新版本,如果有更新,则打开更新对话框。 问题 到目前为止,这种方法运作良好,但我最近发现这种方法存在一个主要问题。 更新应用程序的程序集版本时,将在AppData / Company / Product / Version / blahblahblah中创建用户的设置文件(user.config)的新版本。 这显然迫使用户重置新版本中的所有内容。 建议的解决方案 我不知道该怎么办。 到目前为止,应用程序只有1个版本,目前的用户群基本上是我可以求它测试它的人,所以切换策略没什么大不了的。 我考虑过: 1.)编写我自己的设置系统,从而完全控制设置文件的存储和使用位置/方式。 2.)重新考虑我的版本控制/更新策略,以便更新不基于程序集版本。 我不确定如何做到这一点,但我的测试似乎表明即使构建和安装具有相同程序集版本的新版本仍然会破坏user.config。 我想我真正想知道是否有任何方法可以保留默认设置系统,因为它很容易使用,同时也适应我的部署策略。

保存应用程序首选项…注册表/文件

存储应用程序首选项的最佳位置在哪里? 特别是,我想保存媒体播放器的首选项,如音量级别等。 两个候选人脑海中浮现……文件和注册表。 哪个更合适? 作为后续内容,我还想知道是否有任何API有助于创建特定于应用程序的设置。 除非有人告诉我这是错误的,否则我想保存HKCU… or HKLM/Software/MyCompanyName/MyAppName/Key注册表的HKCU… or HKLM/Software/MyCompanyName/MyAppName/Key ,或者%APPDATA\MyCompanyName\MyAppName\someTypeOfSettingsFile 。 由于这些似乎常用于此类设置,我假设.Net可以轻松地在这些位置存储设置。 是否有一个简单的高级API,.Net可以让我读取和写入这些常见位置的设置?

如何使设计器生成的.Net应用程序设置可移植

我一直在寻找修改多普勒播客聚合器的来源,目标是能够直接从我的mp3播放器运行程序。 多普勒使用Visual Studio设计器生成的Settings类存储应用程序设置, 该类默认将用户设置序列化到用户的主目录。 我想更改此设置,以便所有设置都存储在与exe相同的目录中。 看来这可以通过创建inheritanceSettingsProvider类的自定义提供程序类来实现。 有没有人创建过这样的提供商并希望共享代码? 更新:我能够通过使用此MSDN示例 (即具有简单inheritance)使自定义设置提供程序几乎正常工作。 我最初感到困惑,因为Windows Forms设计器停止工作,直到我在Codeproject上做了这个技巧: internal sealed partial class Settings { private MySettingsProvider settingsprovider = new MySettingsProvider(); public Settings() { foreach (SettingsProperty property in this.Properties) { property.Provider = settingsprovider; } … 该程序仍以窗口大小0; 0开始。 有任何见解的人? 为什么需要在运行时协助提供程序 – 而不是使用MSDN建议的属性? 为什么使用默认设置提供程序与自定义提供程序将默认设置传递给应用程序的方式有何变化?

ASP.NET中的自定义类型应用程序设置

刚才我遇到了可以处理复杂类型的.NET WinForms中的ApplicationSettings。 目前我在我的ASP.NET WebForms中使用AppSettings,它只能处理字符串。 我可以在Webforms中使用ApplicationSettings吗? 如果是这样的话?

如何在Windows窗体应用程序设置中记录窗口位置

这似乎是一个标准要求:下次用户启动应用程序时,以与以前相同的位置和状态打开窗口。 这是我的愿望清单: 窗口位置与原样相同 除非屏幕已resize并且旧位置现在已关闭屏幕。 分裂者应保持其立场 标签容器应保留其选择 一些下拉菜单应该保留他们的选择 窗口状态(最大化,最小化,正常)与其相同。 也许你永远不应该开始最小化,我还没有决定。 我将添加我当前的解决方案作为答案以及限制。