小编Sco*_*ski的帖子

在C#中为通用列表的FindAll添加参数

我有一个对象列表,我想用整数参数过滤

List<testObject> objectList = new List<testObject>();

// populate objectList with testObjects

objectList.FindAll(GroupLevel0);

private static bool GroupLevel0(testObject item)
{ return item._groupLevel == 0; }

private class testObject
{
     public string _FieldSQL = null;
     public int _groupLevel;
}
Run Code Online (Sandbox Code Playgroud)

我要做的是让GroupLevel0接受一个整数作为参数而不是硬编码为0.我在.NET 2.0中工作,所以lambda表达式是不行的.甚至可以将参数传递给谓词吗?

谢谢,

c# generics predicate findall

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

代码分析回来时建议不要使用"out"参数

我针对我创建的对象运行了VS 2008代码分析工具,并收到了以下建议......

警告147 CA1021:Microsoft.Design:考虑一种不要求'returnValue'为out参数的设计.

我发现"out"参数相当有用,并没有意识到它们被认为是一种不受欢迎的设计实践.我想知道是否有人可以了解我收到此警告的原因?如果这是不好的做法?为什么?什么是好的做法?

我很感激任何建议.

c# warnings code-analysis out-parameters visual-studio-2008

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

添加配置转换不添加所有配置

我在Visual Studio 2010中遇到"添加配置转换"选项的问题.我有一个ASP.NET 4.0 Web项目,其中定义了以下4种配置模式:

  • 调试
  • 本地
  • 生产前
  • 发布

当我右键单击web.config并选择"Add Config Transforms"时,只会添加以下两个配置转换:

  • Web.Debug.config
  • Web.Release.config

"PreProduction"和"Local"文件未显示.是否有一个我错过的设置会导致这两个文件现在出现?

visual-studio-2010 web-config-transform

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

使用GetWorkspace连接到Team Foundation Server工作区

我是Team Foundation Server的新手,我正在尝试使用c#以编程方式连接到项目.我有以下代码块...

string serverName = "http://tfs01:8080";
TeamFoundationServer tfs = new TeamFoundationServer(serverName);
VersionControlServer version = (VersionControlServer)tfs.GetService(typeof (VersionControlServer));
Workspace workspace = version.GetWorkspace("Test", version.AuthenticatedUser);
MessageBox.Show(workspace.Name);
Run Code Online (Sandbox Code Playgroud)

当我执行代码时,我收到以下错误...

TF14061: The workspace Test;vercuskis does not exist.
Run Code Online (Sandbox Code Playgroud)

"测试"项目不在根目录下,可以从VS 2008团队资源管理器中访问,我有安全访问权限,我用它来检查和输出代码就好了

我不确定我的代码中是否正确引用了"Test"项目.我正在寻找一个如何从TFS根目录引用项目名称的示例.

谢谢,

c# workspace version-control tfs

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

302重定向仍在尝试运行原始请求

我们有一段代码可以检测旧URL并执行重定向,如下所示:

Response.Clear();
Response.StatusCode = 301;
Response.Status = "301 Moved Permanently";
try
{
    Response.AddHeader("Location", MyLink.GetFullPath());
} catch
{
    Response.StatusCode = 302;
    Response.Status = "302 Moved Temporarily";
    Response.AddHeader("Location", "/");
}
Response.End();
Run Code Online (Sandbox Code Playgroud)

本质上发生的是尝试301永久重定向,如果不成功则将"302 Moved Temporarily"抛出到默认主页.

问题:我遇到的问题如下.如果输入了URL(例如"/ product/ABC123").301重定向失败URL和302重定向在catch被执行,但是原来的URL("/产物/ ABC123")仍然在背景中执行.当我在调试器中运行网站时,302重定向工作正常并且默认主页出现,然后半秒后执行补充页面并由于原始URL为no而出现服务器500错误更长的可接受

我的问题如下:如何完全停止原始请求,让302重定向完成它需要做的事情.我试过"HttpContext.ApplicationInstance.CompleteRequest();" 在"Response.End()"下面,但它没有停止原始请求.

编辑:重定向代码正在从Controller类的Index方法执行.

c# asp.net redirect http-status-code-302 asp.net-mvc-3

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

对齐网格鼠标锁定

我正在开发一个绘制简单点网格的应用程序.我希望鼠标在网格上的点之间捕捉,最终在网格上绘制线条.

我有一个方法,它接收当前鼠标位置(X,Y)并计算最近的网格坐标.

当我创建一个事件并尝试将鼠标移动到新坐标时,整个系统变得不稳定.鼠标不会在网格点之间平滑地捕捉.

我已经复制了下面的代码示例来说明我正在尝试做什么.有没有人有任何建议他们可以提供我如何消除鼠标运动中的跳跃?


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GridTest
{
    public partial class Form1 : Form
    {
        Graphics g;
        const int gridsize = 20;

        public Form1()
        {
            InitializeComponent();
            g = splitContainer1.Panel2.CreateGraphics();
            splitContainer1.Panel2.Invalidate();
        }

        private void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)
        {
            Drawgrid();
        }

        private void Drawgrid()
        {
            for (int x = 0; x < splitContainer1.Panel2.ClientSize.Width; x += gridsize)
            {
                for (int y = 0; y < splitContainer1.Panel2.ClientSize.Height; y …
Run Code Online (Sandbox Code Playgroud)

c# mouse grid onmousemove cursor-position

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

仅使用连接字符串打开Microsoft.practices.EnterpriseLibrary数据库

我正在使用Microsoft.Practices.EnterpriseLibrary数据库工具,我使用连接字符串信息创建新数据库时遇到问题.

理想情况下,我想做以下事情:

Database dbEngine = DatabaseFactory.CreateDatabase(
    "Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;");
Run Code Online (Sandbox Code Playgroud)

是否可以仅使用连接字符串创建数据库?

如果是这样,怎么能实现呢?

database connection-string enterprise-library database-connection

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

查询dbase文件的C#问题; 使用WHERE子句的问题

我在我的c#代码中使用odbc查询dbase .dbf文件,并且在查询中使用'where'子句时出现问题.如果我只是"从FILE.DBF中选择*",我可以检索和阅读记录,我在网页上看到的每个例子,当我搜索答案时都显示了那么多的语法.我已经尝试了多种方法来构造带有'where'的select语句,到目前为止它们都失败了.所以,我想知道我是否不能在针对dbase文件的查询中使用'where'子句,或者我是否还没有找到正确的语法.

我试过了:

select * from FILE.DBF where GROUP = 21;
select * from FILE.DBF where GROUP = '21';
select * from FILE.DBF where GROUP = "21";
Run Code Online (Sandbox Code Playgroud)

所有这些的结果是错误:错误[42000] [Microsoft] [ODBC dBase驱动程序] WHERE子句中的语法错误.

任何帮助将不胜感激.

c# sql dbase

0
推荐指数
1
解决办法
1038
查看次数

解析curl_exec调用的响应POST数据

我有以下代码块连接到安全服务(支付交易网关),传入一些字段($ postData)并收到响应($ returnValue).

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://secure.service.com/data');
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1); 
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
if ($returnValue = curl_exec($ch))
{
    $error = curl_error($ch);
}
Run Code Online (Sandbox Code Playgroud)

当我显示$ returnValue的内容时......它们显示如下:

HTTP/1.0 200 OK批准日期:2011年8月10日星期三09:24:15 GMT连接:关闭内容类型:application/x-www-form-urlencoded内容长度:182 avs_code = X&cvv2_code = P&status_code = 1&processor = TEST&auth_code = 999999&settle_amount = 2000&settle_currency = USD&TRANS_ID = 120741127516&auth_msg = TEST + APPROVED&auth_date = 2011-08-10 + 09:24:15

是否存在将此结果字符串拆分为其组成部分的方法或CURL调用?还是我需要自己写的东西?我需要获取响应代码(200),批准/拒绝部分(已批准)和查询字符串(avs_code ....).我尝试查看curl_getinfo,但这只是获取HTTP响应代码,而不是批准/拒绝或查询字符串值.

我是PHP的新手,所以如果我错过了一个明显的方法调用或CURL参数,请告诉我.

php https post curl

0
推荐指数
1
解决办法
4959
查看次数