我很惊讶Visual Studio中这两种机制的明显冗余来存储和管理桌面应用程序设置:
app.config文件,向该<appSettings>部分添加项目.可以使用ConfigurationManager类从代码中检索这些内容.Settings类,用于在运行时对类型安全的设置检索.这两种机制似乎服务于相同(或几乎相同)的目的.我知道存在一些差异,但我也对重叠及其后果感到困惑.例如,当我使用Visual Studio向Settings.settings文件添加设置时,我输入的所有信息也最终作为app.config文件中的条目.显然,存在同步机制:如果我更改了app.config文件中的设置,Visual Studio会在Settings.settings下次在编辑器中打开时提示我更新文件.
我的问题是:
app.configover 的最常见方案是什么Settings.settings,反之亦然?Settings.settings并且在app.config部署后更改了值,会发生什么?Settings.settings由于已经编译和分发,因此不会发生同步.注意.我已经搜索了关于这个主题的问题,但我更加困惑.例如,这里对这个问题的答案是相当矛盾的,并没有说清楚.
注意2.我知道这app.config是一个设计时文件名,我熟悉Visual Studio复制的动态并将其重命名为可执行文件夹.
在C#中有一些我无法理解的东西.您可以将超出范围int转换为a enum,编译器不会退缩.想象一下enum:
enum Colour
{
Red = 1,
Green = 2,
Blue = 3
}
Run Code Online (Sandbox Code Playgroud)
现在,如果你写:
Colour eco;
eco = (Colour)17;
Run Code Online (Sandbox Code Playgroud)
编译器认为没问题.还有运行时.呃?
为什么C#团队决定实现这一目标?我认为,在这样的场景中,这个决定忽略了使用枚举的重点:
void DoSomethingWithColour(Colour eco)
{
//do something to eco.
}
Run Code Online (Sandbox Code Playgroud)
在像C#这样的强类型语言中,我想假设它eco总是具有合法Colour价值.但这种情况并非如此.程序员可以调用我的方法,其值为17 eco(如前面的代码片段所示),因此我的方法中的代码不能假定它eco具有合法Colour值.我需要明确地测试它并按照我的要求处理特殊值.为什么是这样?
在我的拙见中,如果编译器在将超出范围int转换为a时发出错误(甚至是警告)消息enum,如果int在编译时已知该值,则会更好.如果没有,运行时应该在赋值语句中抛出异常.
你怎么看?这有什么原因吗?
(注意:这是我在很久以前在我的博客上发布的一个问题,但没有得到任何信息回复.)
我试图找到一种方法来确定.NET应用程序中任意文件夹中的总磁盘空间和可用磁盘空间.通过文件夹中的"总磁盘空间"和"可用磁盘空间",我指的是如果对其执行"dir"命令,则该文件夹将报告的总磁盘空间和可用磁盘空间,即,总磁盘空间和可用磁盘空间.考虑到发出请求的用户帐户,包含该文件夹的逻辑驱动器.
我正在使用C#.该方法应该对作为UNC路径给出的本地和远程文件夹起作用(而不是通过映射的驱动器号访问).例如,它应该适用于:
我开始使用DirectoryInfo对象,但这似乎没有关联的磁盘空间信息.DriveInfo类可以,但它不能用于远程文件夹.
编辑.在与你们进行一些交流后,我正在考虑将远程文件夹映射为本地驱动器,使用DriveInfo获取数据,然后再取消映射.这种方法的问题是我的应用程序需要每天几次收集120多个文件夹的数据.我不确定这是否可行.
有任何想法吗?谢谢.
我在SQL Server 2008数据库中有以下表:
Id Name ParentFolder
-- ---- ------------
1 Europe NULL
2 Asia NULL
3 Germany 1
4 UK 1
5 China 2
6 India 2
7 Scotland 4
Run Code Online (Sandbox Code Playgroud)
ParentFolder是同一个表中的FK到Id.我想创建一个结果如下的视图:
Id Name FullName
-- ---- --------
1 Europe Europe
2 Asia Asia
3 Germany Europe/Germany
4 UK Europe/UK
5 China Asia/China
6 India Asia/India
7 Scotland Europe/UK/Scotland
Run Code Online (Sandbox Code Playgroud)
如您所见,我需要通过递归使用ParentFolder关系构建FullName值,直到找到NULL为止.
编辑.表中的每一行"知道"其他行是否为其父级,但不知道其在层次结构中的绝对位置.出于这个原因,每个行在层次结构树中存储其绝对位置的沿袭系统是不合适的.
我知道SQL Server 2008的hierarchyid功能,但据我所知,它只适用于固定数量的递归级别.然而,在我的情况下,你永远不会知道你会找到多少级别,并且它们可能会在行之间发生变化.
我也在这里发现了类似的问题.但是,我认为没有人问过为表格中的每一行构建"路径".对不起,如果我错过了.
非常感谢.
我有一个包含一些对象的公共库.然后我有一个引用公共库的服务项目,并从公共库中的对象创建一些派生类型.
我希望我的服务将派生类型序列化为公共库中定义的基类型.
我不能在公共库中的对象上使用KnownTypes,因为我不希望公共库引用服务程序集.
那么如何将wcf序列化派生类型作为其基类型?
我希望我能做点像......
[DataContract(SerializeAsType = typeof(BaseType))] public class DerivedType:BaseType {}
有可能这样吗?
我一直想知道如何从编程语言到其库来管理依赖项.以C#为例.当我开始学习计算时,我会假设(错误地证明)语言本身是独立于最终可用于它的类库而设计的.也就是说,首先定义语言关键字集(例如for,class或throw)加上语法和语义,并且可以从语言中使用的库是单独开发的.我曾经认为,这些库中的特定类不应该对语言的设计产生任何影响.
但这不起作用,或者不是一直都行不通.考虑throw.C#编译器确保后面的表达式throw解析为异常类型.Exception是一个库中的类,因此它根本不应该是特殊的.除了C#编译器为其指定特殊语义之外,它将与其他任何类一样.这是非常好的,但我的结论是语言的设计确实取决于类库中特定元素的存在和行为.
另外,我想知道如何管理这种依赖.如果我要设计一种新的编程语言,我会用什么技术将语义映射throw到特定的类Exception?
所以我的问题是两个:
谢谢.
编辑.感谢那些指出我的第二个问题非常含糊的人.我同意.我想要学习的是编译器存储的所需类型的引用.例如,它是否通过某种唯一ID找到类型?发布新版本的编译器或类库时会发生什么?我知道这仍然很模糊,我不期待一个精确的单段答案; 相反,非常欢迎指向文学或博客文章.
SQL Server中是否有一种方法可以从具有日期列(1998到2010)的表中显示会计年度(从10月1日开始到9月30日结束).这是我做的:
select 'FY1999' as FY, site, count(*)
from mytable
where mydate >='10/1/1998'
and mydate <'10/1/1999'
group by site
Run Code Online (Sandbox Code Playgroud)
select 'FY2000' as FY, site, count(*)
from mytable
where mydate >='10/1/1999'
and mydate <'10/1/2000'
group by site
Run Code Online (Sandbox Code Playgroud)
select 'FY2001' as FY, site, count(*)
from mytable
where mydate >='10/1/2000'
and mydate <'10/1/2001'
group by site
Run Code Online (Sandbox Code Playgroud)
这个年度超过10年这样做是不是太重复了?
有人能够向我解释一下Objective-C中的数据封装是什么吗?我被告知这是Objective-C的一个重要概念,但我不明白为什么......
向我解释好像我是5岁,然后好像我25岁......
谢谢你的时间,〜丹尼尔
我正在寻找一个可以存储和管理模糊(即不确定)日期/时间的.NET库,也就是说,时间表达式不遵循通常的日,月,年,小时,分钟,秒的精确模式.我需要能够处理表达的日期/时间值的东西,例如:
该库可能实现FuzzyDateTime类型或类似的东西,并允许多种方式从文本和/或常规DateTime值构造它的实例.还需要比较和排序功能.
所以,我的问题是:你知道任何适合这种描述的产品吗?我很高兴考虑各种产品,即商业,开源,免费软件等.
有任何想法吗?非常感谢.
我们开发了一个中型ASP.NET/SQL Server应用程序,它使用资源文件来提供英语和西班牙语用户界面变体.整个数据库使用Unicode数据类型.现在我们被要求添加普通话.我没有对亚洲语言进行本地化的经验,所以我真的无法想象这会是什么样的工作.
我的问题是:
有关以往经验或最佳实践指南的报告是最受欢迎的.谢谢.
.net ×3
c# ×2
app-config ×1
asp.net ×1
casting ×1
datacontract ×1
date ×1
dependencies ×1
directory ×1
diskspace ×1
enums ×1
fuzzy ×1
libraries ×1
localization ×1
objective-c ×1
recursion ×1
sql ×1
sql-server ×1
time ×1
wcf ×1