所以我有一些用户范围的设置,但由于某种原因,它们没有保存到.exe.config文件中.我做以下事情:
Properties.Settings.Default.Email = "new@value.com";
Properties.Settings.Default.Save();
Run Code Online (Sandbox Code Playgroud)
然而,我查看调试文件夹中的设置文件,它仍然是我在visual studio中设置的默认设置.我做错了吗?
我们有几个长时间运行的后端进程需要比默认的30秒更长的时间.
我们的NHibernate版本是2.0.1.4000,Spring.NET是1.2.0.20313.NHibernate通过Spring.NET以这种方式配置:
<object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate20">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
<list>
<value>SomeKindOfAnItem</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>
<entry key="expiration" value="120"/>
<entry key="adonet.batch_size" value="10"/>
<entry key="cache.provider_class" value="NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache"/>
<entry key="cache.use_query_cache" value="true"/>
<entry key="connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
<entry key="connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
<entry key="dialect" value="NHibernate.Dialect.MsSql2005Dialect"/>
<entry key="current_session_context_class" value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate20"/>
<entry key="show_sql" value="false"/>
</dictionary>
</property>
</object>
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我试图在Web.config中将NHibernate command_timeout设置为60.这是来自Web.config:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="command_timeout">60</property>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,命令在30秒后超时.
我构建了一个控制台应用程序,就像Web应用程序一样调用DAO.我在其配置文件中具有完全相同的NHibernate配置设置.IDbCommand在60秒后超时,而不是30,使用配置文件中的设置成功.
我尝试调试应用程序并检查从网站调用DAO程序集时是否设置了commandTimeout.它是.
这是来自Visual Studio观看:
((NHibernate.Driver.DriverBase)(((NHibernate.Connection.DriverConnectionProvider)((NHibernate.Impl.SessionFactoryImpl)session.SessionFactory).ConnectionProvider).Driver)).commandTimeout:60
会话创建如下:
ISession session = SessionFactoryUtils.GetSession(HibernateTemplate.SessionFactory, true);
Run Code Online (Sandbox Code Playgroud)
我的问题是:如果命令超时字段从我的Web.config成功设置为60,为什么它会在30秒后超时?我可以尝试任何想法吗?
默认情况下,设置存储在: C:\Documents and Settings\\Local Settings\Application Data\<Project Name>
如何将此路径更改为应用程序目录.我也不想为不同的用户提供不同的文件.如何使设置全局?
我试图将设置的范围更改为"应用程序",但我无法在运行时更改它们.
使用SQL Server 2008或更早版本的任何人都知道,当您在窗口中运行命令时,结果窗口会弹出屏幕的下半部分.我确实希望看到我的结果,但只有第一个或前10个结果才会有窗口是浪费.有没有办法可以更改该窗口的默认大小?
此外,如果VS 2008或2010中存在此类功能,请告诉我,我将放弃SQL Server Management Studio.
是否可以从加载的app.config文件的applicationSettings部分访问值?
我找到了一个示例如何检索appSettings,但我无法通过这种方式找到如何访问applicationSettings.
.net configuration app-config application-settings visual-studio
.NET允许您使用.settings文件来管理应用程序设置.我想以一种我可以这样做的方式单独存储生产,开发和测试设置:
EnvironmentSettings environmentSettings;
// get the current environment (Production, Development or Test)
ApplicationEnvironment Environment = (ApplicationEnvironment)
Enum.Parse(typeof(ApplicationEnvironment), Settings.Default.ApplicationEnvironment);
switch (Environment)
{
case ApplicationEnvironment.Production:
environmentSettings = Settings.Production;
break;
...
}
string reportOutputLocation = environmentSettings.ReportOutputLocation;
Run Code Online (Sandbox Code Playgroud)
基本上,我想要两个单独的Settings类:存储所选环境和非环境特定属性的常规Settings类,以及名为EnvironmentSettings的第二个类的3个静态实例.使用的实例应取决于常规Settings类中指定的环境.
有没有办法在静态构造函数或其他东西中手动设置所有这些设置的值?如果我必须这样做,我宁愿只有一个大的Settings类,其中包含"DevOutputLocation","LiveOutputLocation"等属性.
我可以在我的项目中有多个.settings文件,但这只是创建了不相互派生的单独类.所以我可以创建DevelopmentSettings.settings,ProductionSettings.settings和TestSettings.settings文件并给它们相同的属性,但是我需要在任何地方使用一堆switch语句来确定要使用哪个类,因为它们不是从公共类派生的.
假设我正在为我的应用程序定义一个浏览器实现类:
class InternetExplorerBrowser : IBrowser {
private readonly string executablePath = @"C:\Program Files\...\...\ie.exe";
...code that uses executablePath
}
Run Code Online (Sandbox Code Playgroud)
乍一看这可能看起来是个好主意,因为executablePath数据接近将使用它的代码.
当我尝试在另一台具有外语操作系统的计算机上运行相同的应用程序时executablePath会出现问题:将具有不同的值.
我可以通过AppSettings单例类(或其等价物)来解决这个问题,但是没有人知道我的类实际上依赖于这个AppSettings类(它违背了DI ideias).它也可能给单元测试带来困难.
我可以executablePath通过构造函数传入来解决这两个问题:
class InternetExplorerBrowser : IBrowser {
private readonly string executablePath;
public InternetExplorerBrowser(string executablePath) {
this.executablePath = executablePath;
}
}
Run Code Online (Sandbox Code Playgroud)
但这会引起我的问题Composition Root(启动方法将执行所有需要的类连接),因为那个方法必须知道如何连接并且必须知道所有这些小设置数据:
class CompositionRoot {
public void Run() {
ClassA classA = new ClassA();
string ieSetting1 = "C:\asdapo\poka\poskdaposka.exe";
string ieSetting2 = "IE_SETTING_ABC";
string ieSetting3 = "lol.bmp";
ClassB classB = new ClassB(ieSetting1); …Run Code Online (Sandbox Code Playgroud) 像大多数人一样,我的应用程序需要存储数据.该应用程序以前仅在XP中存储数据时使用Program Files.既然我们的客户正在转向Windows 7,我必须升级它,以便将数据存储在新文件夹中.我选择了该ApplicationData文件夹,因为我认为我可以在不需要UAC的情况下访问该文件夹.
现在在一些Windows 7机器上这很好,但是在其他机器上访问该文件夹失败,可能是因为权限,但是当使用Administrator privelidges运行时,程序运行正常.
我使用错误的文件夹还是这些情况是异常值?在任何一种情况下,这种事情的最佳做法是什么?
我使用以下C#SpecialFolder来获取AppData文件夹位置.
System.Environment.SpecialFolder.ApplicationData
Run Code Online (Sandbox Code Playgroud) 在Visual Studio中,有一个" 导入和导出"设置向导,您可以使用该向导自定义Visual Studio并将设置保存到.settings文件.
我们在SQL Server Management Studio中有类似的东西吗?
我经常在几个VM之间切换,配置每个SSMS是一个痛苦的问题.我希望能够将我的设置保存到文件中,然后将其导入到我的所有VM中.
谢谢.
我有一个基于Qt(4.8.5)的应用程序在OS X 10.9上运行.该应用程序使用QSettings类指定应用程序名称和公司.Plist文件由QSetttings在以下位置创建:
~/Library/Preferences/com.company_name.app_name.plist
该应用程序在保存/恢复首选项方面非常好.然后我退出应用程序,删除*.plist文件,再次运行应用程序并瞧 - 它恢复了它的首选项!根据什么文件?热门删除吗?
我无法在Qt doc for QSettings类中找到答案.
.net ×4
c# ×4
settings ×2
ssms ×2
app-config ×1
appsettings ×1
macos ×1
nhibernate ×1
oop ×1
qsettings ×1
qt ×1
sql ×1
timeout ×1
uac ×1
windows-7 ×1