我经常看到问题的答案如下:"我应该如何在我的.NET应用程序中存储设置?" 是通过手动将条目添加到app.config(或web.config)来编辑app.config文件,如下所示:
<configuration>
<appSettings>
**<add key="ConfigValueName" value="ABC"/>**
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
然后,访问它们像:
string configValue = Configuration.AppSettings["ConfigValueName"];
Run Code Online (Sandbox Code Playgroud)
我将上面概述的方法称为"app.config"方法.我很少看到人们建议在项目中添加"设置"文件.我已经在网络上和堆栈溢出中看到了这么多次...我开始怀疑我是否遗漏了某些东西......因为我不确定为什么你使用这种方法而不是使用"设置" "档案.我没有进入.NET直到VS2005所以我有一个理论是这是VS2003中的事情是如何完成的,人们从未切换过?
推荐app.config方法的人的示例:
从我的观点来看,"设置文件"方法有以下优点:
propertyGrid1.SelectedObject = Settings1.Default;就是你已经完成了.如果您不确定"设置"文件方法的含义,请参阅此帖子,这是有人建议使用设置文件而不是app.confg的少数示例之一.
编辑:请理解:本主题的目的是弄清楚为什么人们会使用上面概述的app.config方法而不是设置文件方法.我遇到了设置文件方法的限制,并且有时被迫推出自己的自定义解决方案.这是一个完全不同的讨论.
我选择将其视为一个问题,因为它在原帖的评论中产生了如此多的争论.
很有趣的是,很多SO(开发人员)的人都没有获得本地化.以下是我应该如何运作的看法:
在我查看用户的文化偏好时,我所看到的所有浏览器(以及那里的.NET开发人员)都采用以下格式:language-Culture.
所以我们有:
有关.NET框架支持的完整列表,请参阅MSDN.
当我访问一个网站时,它知道我需要来自英语的英语,它知道我对它倾向于英国感兴趣(数字格式化,日期格式化).因此,当我去google.com并且它带我去google.de(因为我的IP地址),如果google.de用英语向我显示所有内容但完全错误,因为google.de是德语的.我几乎无法控制我的IP地址,但可以完全控制我的语言和文化设置.如果你有兴趣,微软的新搜索引擎(bing.com)会妥善处理事情.让我们希望微软可以学习如何进行搜索以及谷歌或谷歌可以学习本地化以及微软;)
MSDN在这里有另一篇好文章以获取更多信息
那么您对网站应如何处理本地化的建议是什么?
language-agnostic globalization localization user-experience
我创建了具有3个类的测试应用程序
作为序列化过程,当我创建XmlSerializer对象的实例时,我使用2个对象进行测试
XmlSerializer xmlSerializer = new XmlSerializer(typeof(SportCar));
Run Code Online (Sandbox Code Playgroud)
和
XmlSerializer xmlSerializer = new XmlSerializer(
typeof(SportCar),
new Type[] { typeof(Car), typeof(Radio) });
Run Code Online (Sandbox Code Playgroud)
这两种方法的结果是相同的,所以我想知道这两个构造函数或需要使用#2构造函数的关键点之间有什么区别?
我想开发一个机器人,它将使用php更新facebook帐户的状态.
请指导我这个
数据库:SQL Server 2008。
我有一个像这样的真正(假)常规查询:-
SELECT CarId, NumberPlate
(SELECT Owner
FROM Owners b
WHERE b.CarId = a.CarId) AS Owners
FROM Cars a
ORDER BY NumberPlate
Run Code Online (Sandbox Code Playgroud)
这就是我想要得到的......
=> 1 ABC123 John, Jill, Jane
=> 2 XYZ123 Fred
=> 3 SOHOT Jon Skeet, ScottGu
Run Code Online (Sandbox Code Playgroud)
所以,我尝试使用
AS[Text()] ... FOR XML PATH('')但那是包括奇怪的编码字符(例如回车)。......所以我对此并不100%满意。
我还尝试查看是否有 COALESCE 解决方案,但我所有的尝试都失败了。
所以 - 有什么建议吗?
我有一个Perl应用程序,从命令行输入一个输入:
application --fields 1-6,8
Run Code Online (Sandbox Code Playgroud)
我需要在命令行上显示用户请求的字段.
我想用'...'代替' - ',以便我可以将它们存储在数组中,例如
$str = "1..15,16" ;
@arr2 = ( $str ) ;
@arr = ( 1..15,16 ) ;
print "@arr\n" ;
print "@arr2\n" ;
Run Code Online (Sandbox Code Playgroud)
这里的问题是@arr工作正常(应该如此),但在@ arr2中,整个字符串不会扩展为数组元素.
我尝试过使用转义序列,但没有运气.
可以这样做吗?
我用git跟踪一个项目.工作副本中有一些Xcode项目文件,我想继续跟踪,但不想在差异中看到,因为总有几十条我不感兴趣的更改行.是否有一种简单的方法可以git-diff跳过这些文件?我试图设置一个自定义的"静音"差异工具:
$ cat .gitattributes
Project.xcodeproj/* diff=nodiff
$ cat ~/.gitconfig
[diff "nodiff"]
command = /bin/true
但:
$ git diff external diff died, stopping at Project.xcodeproj/zoul.mode1v3.
我究竟做错了什么?
我怀疑我们的一个应用程序中使用的数据库连接并不总是关闭.我去看了代码,我找到了一个DataProvider有SqlConnection对象的类.连接在这个类的构造函数中打开,并在它的Dispose方法中关闭(不要判断,我知道保持一个开放的连接是邪恶的,它不是我的代码而且它不是问题的重点).该Dispose方法实现如下:
protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
if (_conn != null)
_conn.Close();
}
_disposed = true;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:
它是否始终保证连接已关闭?
这段代码对吗?
我认为应该被_conn.Dispose()称为 - 我是对的,是否会影响不关闭连接(可能不是)?
我对MYSQL比较陌生,并且有一个问题一直困扰着我.我已经尝试使用谷歌搜索到答案的地方,但还没有找到一个可接受的解决方案.
以下是我目前正在运行的查询,以查找给定搜索字词的最佳匹配:
$query="SELECT * from `vocabulary` WHERE translation = 'word' OR translation LIKE '%word%'";
Run Code Online (Sandbox Code Playgroud)
它返回的结果是全面的,因为它们包括所有相关的行.但是,它们没有按任何特定顺序排序,我希望在用PHP打印结果时首先显示完全匹配的那些.像这样:
1 | 单词<-exact match
2 | 填字游戏< - 按字母顺序排序的部分匹配/
3 | 字
4 | 语言大师
非常感谢您的帮助.
-macspacejunkie
.net ×3
c# ×2
php ×2
.net-2.0 ×1
api ×1
app-config ×1
appsettings ×1
chatbot ×1
dispose ×1
facebook ×1
git ×1
google-talk ×1
localization ×1
mysql ×1
numbers ×1
perl ×1
python ×1
range ×1
sorting ×1
sql-server ×1
string ×1
subquery ×1
syntax-error ×1
xml ×1