小编Dav*_*N59的帖子

Properties.Settings.Default存储在哪里?

我以为我知道这一点,但今天我被证明是错的 - 再一次.

运行VS2008,.NET 3.5和C#.我使用默认值将"用户"设置添加到"属性设置"选项卡,然后使用以下代码读取它们:

myTextBox.Text = Properties.Settings.Default.MyStringProperty;
Run Code Online (Sandbox Code Playgroud)

然后,在用户编辑选项对话框中的值后,我将其保存为:

Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();
Run Code Online (Sandbox Code Playgroud)

我的问题是,这个新值保存在哪里?可执行文件目录中的MyApp.exe.config文件未更新,它仍包含默认值.另外,据我所知,该目录中的其他任何文件都没有更新!但是,当程序重新读入值时,它会获得更改的值,因此我知道它已保存在某处...

这不仅仅是学术性的,我需要能够手动编辑今天早上的价值,当我找不到任何改变的东西时,我会感到难过.

.net c# settings

133
推荐指数
4
解决办法
13万
查看次数

如何从Web服务中获取客户端发送的X509Certificate?

显然我在之前的帖子中提出了错误的问题.我有一个使用X.509证书保护的Web服务,作为安全的网站运行(https:// ..).我想使用公司的根CA颁发的客户端机器证书(也是X.509)来验证客户端机器是否有权使用该服务.为了做到这一点,我需要检查证书并寻找一些识别功能,并将其与存储在数据库中的值(可能是指纹?)相匹配.

这是我用来从本地证书商店获取证书的代码(直接从http://msdn.microsoft.com/en-us/magazine/cc163454.aspx获取):

 public static class SecurityCertificate
{
    private static X509Certificate2 _certificate = null;

    public static X509Certificate2 Certificate
    {
        get { return _certificate; }
    }

    public static bool LoadCertificate()
    {
        // get thumbprint from app.config
        string thumbPrint = Properties.Settings.Default.Thumbprint;
        if ( string.IsNullOrEmpty( thumbPrint ) )
        {
            // if no thumbprint on file, user must select certificate to use
            _certificate = PickCertificate( StoreLocation.LocalMachine, StoreName.My );
            if ( null != _certificate )
            {
                // show certificate details dialog …
Run Code Online (Sandbox Code Playgroud)

c# web-services x509certificate2

10
推荐指数
1
解决办法
2万
查看次数

如何让T4MVC重新生成.generated.cs文件?

我正在向NerdDinner DinnersController类添加测试,当我创建构造函数需要进行构造函数注入时,我得到了与T4MVC生成的构造函数(特别是基础构造函数)的冲突.看起来如果已经存在基础构造函数,则不会生成基础构造函数 - 这是真的吗?如果是这样,我需要做什么才能重新生成T4MVC文件?

谢谢,戴夫

c# unit-testing t4mvc

9
推荐指数
1
解决办法
5188
查看次数

哪个在.NET中更快,.Contains()或.Count()?

我想将一组修改过的记录与从数据库中提取的记录列表进行比较,并从数据库中删除那些在传入数组中不存在的记录.修改后的数组来自维护数据库的客户端应用程序,此代码在WCF服务应用程序中运行,因此如果客户端从数组中删除记录,则应从数据库中删除该记录.以下是示例代码段:

public void UpdateRecords(Record[] recs)
{
    // look for deleted records
    foreach (Record rec in UnitOfWork.Records.ToList())
    {
        var copy = rec;
        if (!recs.Contains(rec))                      // use this one?
        if (0 == recs.Count(p => p.Id == copy.Id))    // or this one?
        {
            // if not in the new collection, remove from database
            Record deleted = UnitOfWork.Records.Single(p => p.Id == copy.Id);
            UnitOfWork.Remove(deleted);
        }
    }
    // rest of method code deleted
}
Run Code Online (Sandbox Code Playgroud)

我的问题:使用Count方法比Contains方法有速度优势(或其他优势)吗?Id属性保证是唯一的并且用于标识该特定记录,因此您不需要进行按位比较,因为我假设Contains可能会这样做.

任何人?谢谢,戴夫

.net c# linq

9
推荐指数
4
解决办法
1748
查看次数

对于SQL Server的Flyway连接字符串的正确语法是什么?

在远程计算机上运行SQL Server 2012 Express,尝试启动并运行Flyway.我有一个pcesqldev.pce.local被调用的数据库Hawk(dbo.Hawk,如果这很重要)我要连接到,并且配置文件中的模板如下所示:

SQL Server        : jdbc:jtds:sqlserver://<host>:<port>/<database>
Run Code Online (Sandbox Code Playgroud)

请注意,这与我与其他产品一起使用的其他jdbc连接字符串不同 - 其中大部分都不包含jtds部分,并且包含实例名称.

这是我尝试过的一些连接字符串,所有连接字符串都失败了:

我错过了什么?必须有一些明显的东西,但我看不到它.

在任何人问之前,是的,我们确实启用了对数据库的TCP访问,并且它正在使用端口1433.

connection-string flyway sql-server-2012

9
推荐指数
2
解决办法
4774
查看次数

我的TableAdapter的更新和删除命令怎么了?

好像我正在与一个顽抗的VS2008 DataSet设计师作战.我一直在尝试做一个简单的2表数据集解决方案,其中一个表只是存储在另一个表中的整数值的文本含义.基本数据设计101.

Table1
CharField1
CharField2
IntForeignKeyField1
etc

Table2
IntPrimaryKey1
ValueForKeyField
Run Code Online (Sandbox Code Playgroud)

这并没有真正影响我遇到的问题,我不相信,因为我不想做任何事情,只是从第二个表中读取值,所以我可以在客户端的DataGridViewComboBoxColumn中选择它们 - 我会永远不要在客户端上编辑它们.但是,我离题了.

由于它存在于Web服务中,并且我希望将一个强类型数据集传递给此Web服务的客户端,因此我决定使用DataSet Designer来构建TableAdapter和所有管道,认为它可能不那么有用,也更容易保持.

因此,我创建了漂亮的框并编辑了select语句,指示设计者为表适配器创建所有Insert,Update和Delete命令.它很高兴地告诉我,一切都按照我的要求完成了.

但是,当我尝试使用Update语句时,我收到一条错误消息,指出没有有效的Update语句!在对网络上有类似问题的人进行一些徒劳无功的搜索之后,我挖掘了数据集的XML.果然,没有Update语句,也没有Delete语句.

我尝试从项目中完全删除并重新创建DataSet,结果相同.未创建更新或删除语句,即使报告已完成.

我最后通过检查来自另一个项目的另一个设计数据集手动构建Update语句XML,因此Web服务现在正在运行.但是,我没有任何信心,我的更改将持续通过设计师发起的编辑,我很难过为什么它不起作用.有任何想法吗?

感谢任何反馈,戴夫

designer dataset tableadapter visual-studio-2008

5
推荐指数
1
解决办法
1万
查看次数

Array.ForEach()与C#中的循环标准相比如何?

作为一名C程序员,我可以输入:

memset( byte_array, '0xFF' );
Run Code Online (Sandbox Code Playgroud)

并获得一个填充'FF'字符的字节数组.所以,我一直在寻找替代品:

for (int i=0; i < byteArray.Length; i++)
{
    byteArray[i] = 0xFF;
}
Run Code Online (Sandbox Code Playgroud)

最近,我一直在使用一些新的C#功能,并且一直在使用这种方法:

Array.ForEach<byte>(byteArray, b => b = 0xFF);
Run Code Online (Sandbox Code Playgroud)

当然,第二种方法似乎更清晰,更容易看到,但性能与使用第一种方法相比如何呢?我是否通过使用Linq和泛型来引入不必要的开销?

谢谢,戴夫

.net c# performance

5
推荐指数
1
解决办法
8246
查看次数

DataGridView SortCompare事件不会触发

使用VS2008,C#和.NET 3.5

我正在使用数据绑定DataGridView控件来显示从Web服务读取的表格数据.在某些情况下,需要对数字列进行排序.我已尝试了几种不同的方法来实现此功能,但该列仍然按字母顺序排序(即1,10,2,3而不是1,2,3,10).

将列数据类型设置为int对数据绑定控件不起作用,因此唯一真正的方法是提供一些自定义排序逻辑.

许多人建议连接到SortCompare事件以提供自定义排序逻辑,但由于某种原因,事件代码永远不会运行 - 我可以在处理程序中放置一个断点,它永远不会到达那里.我通过GUI添加事件处理程序,因此处理程序由VS添加到控件,而不是手动添加.

这是事件处理程序代码,从这里的某处提升:

    private void uxLicensedSoftwareDataGridView_SortCompare( object sender, 
                                          DataGridViewSortCompareEventArgs e )
    {
        int intValue1, intValue2;

        if ( !Int32.TryParse( e.CellValue1.ToString(), out intValue1 ) )
            return;
        if ( !Int32.TryParse( e.CellValue2.ToString(), out intValue2 ) )
            return;

        if ( intValue1 == intValue2 )
            e.SortResult = 0;
        else if ( intValue1 < intValue2 )
            e.SortResult = -1;
        else
            e.SortResult = 1;

        e.Handled = true;
    }
Run Code Online (Sandbox Code Playgroud)

如果这被解雇了,它将完全按照我的意愿行事.我能错过什么?

谢谢你指出(希望)显而易见......戴夫

c# events .net-3.5 winforms

4
推荐指数
2
解决办法
7678
查看次数

如何在运行时确定我是否连接到生产数据库?

好的,所以我做了蠢事并发布了针对我们的开发数据库(SQL Server 2008 R2)的生产代码(C#,VS2010).幸运的是我们还没有使用生产数据库,所以我没有尝试恢复和同步一切的痛苦......

但是,我想要防止这种情况再次发生,因为它可能会更加痛苦.我的想法是添加一个我可以在启动时查询的表,并通过返回的值确定我连接的数据库.例如,生产将返回"PROD",dev和test将返回其他值.

如果它有任何区别,应用程序会与WCF服务进行通信以访问数据库,因此我在配置文件中有端点,而不是实际的连接字符串.

这有意义吗?其他人如何解决这个问题?

谢谢,戴夫

database sql-server wcf version slowcheetah

4
推荐指数
1
解决办法
1059
查看次数

如何将T(IEnumerable <T>)数组转换为IQueryable <T>以便使用LINQ进行处理?

我正在使用WCF服务器(使用新的测试版Mindscape LightSpeed ORM)并在ASP.NET MVC2客户端上使用该服务.我的实体在客户端显示为数组TIEnumerable<T>.我希望在数据到达后对数据做很酷的事情,但需要LINQ语法IQueryable<T>.

我知道有一种方法可以转换IEnumerable<T>IQueryable<T>,但到目前为止我没有运气寻找它.有人可以帮忙吗?

谢谢,戴夫

linq wcf .net-4.0 lightspeed asp.net-mvc-2

3
推荐指数
1
解决办法
2517
查看次数

如何在一个端口上运行多个WCF服务?

可能重复:
在单个端口上承载多个TCP WCF服务端点

我有一个从一个WCF服务应用程序运行的4个服务,如果使用4个独立的端口并且在我的本地计算机上运行,​​它在控制台应用程序中托管,它们都很好用.这对于开发来说很好,但是现在我想把它移到Intranet上的Server 2008机器上,而且IT男孩们并不乐意在这台机器上打开大量的端口.

我知道我可以在同一个端口上运行多个服务,但我似乎找不到任何告诉我如何操作的东西.大多数情况下,第一个服务启动,然后第二个服务无法启动.

有人能指出我的博客或文章,解释如何做到这一点?

我还需要弄清楚如何在WAS中托管服务,但这可能是一个单独的问题.我正在使用TCP协议,如果这有任何区别......

谢谢,戴夫

c# windows-server-2008-r2

3
推荐指数
1
解决办法
1万
查看次数

为什么我的MVC3网页没有向IIS Express发送Windows凭据?

我一直在努力让Windows身份验证与开发中的MVC3应用程序(VS 2010 SP1)一起使用,到目前为止还没有真正的运气.我在我的开发机器上运行XP(直到明年没有钱进行升级),如果这有所不同.我还应该提到我使用IIS Express作为VS 2010的默认Web开发服务器.

我开始使用一个空的MVC3应用程序,因为我没有从VS菜单中获得Intranet模板,直到我昨天升级了MVC3工具(好吧,我有点慢).一旦我安装并检查了该模板,我就将DirectoryServices的引用添加到了我的项目中,并在页面的右上角添加了显示当前登录用户的代码.根据图形,它现在应该说"欢迎PCE\dnewman!"

我遵循了这篇文章中的优秀说明:IIS Express Windows身份验证并确实取得了一些进展.但是,我现在从IIS Express收到401.2错误,告诉我我没有被授权......

所以,我进入了我的项目属性并将Anonymous Authentication设置为Enabled.现在我可以访问该网页,但我在页面右上角看到的是"欢迎!" - 没有用户名.

我尝试使用IE和Firefox,结果相同.什么$#^&!我在这儿失踪了?好像我没有登录到Windows !! 我在哪里开始寻找问题?

在几年前的前雇主,我写了一个Windows窗体应用程序,用他们的Windows登录凭据对用户进行身份验证.在这种情况下,我必须特别注意发送凭据,然后在服务端显式验证它们.我是否需要做些什么来使浏览器包含每个GET或POST的凭据?

根据请求,这是我的web.config的内容,对所有Glimpse配置的东西道歉.

<?xml version="1.0" 
  encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="glimpse" 
         type="Glimpse.Core.Configuration.GlimpseConfiguration" />
  </configSections>
  <appSettings>
    <add key="ClientValidationEnabled" 
     value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" 
     value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" 
             targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
    <pages>
      <namespaces> …
Run Code Online (Sandbox Code Playgroud)

asp.net windows-authentication asp.net-mvc-3

3
推荐指数
1
解决办法
1796
查看次数

如何为本地时区格式化MVC3 WebGrid日期列?

我的日期时间值以UTC格式存储在数据库中.我想使用标准的MVC3 WebGrid控件在本地时区显示它们,但不知道如何做到这一点或在哪里寻找答案.

我当前的代码如下所示:

grid.Column("TestDateTime", "Test Date/Time")
Run Code Online (Sandbox Code Playgroud)

我知道那不起作用!

有人能引导我朝着正确的方向前进吗?我确实可以访问Telerik控件(从本地用户组免费),但没有尝试过,因为似乎更多的附加组件更麻烦(许可证费用,更新,保持几个开发环境同步等).如果这是唯一的方法,我会这样做,但宁愿让微软的标准工具来完成这项工作.

谢谢,戴夫

c# visual-studio-2010 asp.net-mvc-3

2
推荐指数
1
解决办法
4668
查看次数