小编Dra*_*aco的帖子

SqlFileStream:在 HTTP 响应中返回流与字节数组

我对使用 .net Web API 在 HTTP 响应中返回字节数组与流的问题有点困惑。

我遇到了以下代码:

        SqlConnection conn = new SqlConnection();
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = "Select FileData.PathName() As FilePath, GET_FILESTREAM_TRANSACTION_CONTEXT() AS Context From FileStorage";
        conn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        reader.Read();
        string filePath = (string)reader["FilePath"];

        byte[] fileBytes = (byte[])reader["Context"];
        SqlFileStream stream = new SqlFileStream(filePath, fileBytes, FileAccess.Read);

        result.Content = new StreamContent(stream);
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
Run Code Online (Sandbox Code Playgroud)

问题 1: 为什么他们会在 HTTP 响应中返回 Stream 而不是字节数组?

问题2:如果通过调用已经可以使用字节数组 ,为什么还要创建SqlFileStream来读取数据(byte[])reader["Context"]?这不是意味着整个文件内容都被读入内存吗?那么为什么需要 Stream 呢?

arrays httpresponse filestream asp.net-web-api asp.net-web-api2

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

测试驱动开发是可行的方法.但是应该怎么做呢?

许多开发人员正在使用测试驱动开发(TDD)设计他们的应用程序,但我想知道我应该在哪个阶段将TDD合并到我的项目中?我应该首先设计我的类,进行一些单元测试并确定需要哪些方法或首先设计方法,然后再进行一些单元测试?

最好的方法是什么?

tdd

4
推荐指数
3
解决办法
983
查看次数

如何从包含通配符的目录路径获取c#中的文件列表?

给定路径c:\ someFolder\**\*.exe.如何使用此目录路径获取文件列表.我知道可以使用,Directory.GetFiles(directoryPath)但只有在directoryPath中没有通配符时才能使用.

c# glob

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

编写使用其他自定义MSBuild任务的自定义MSBuild任务

我编写了一个自定义的MSBuild任务,称之为TaskA,它解析文件并对其进行一些处理.我现在想编写另一个MSBUild任务,称之为TaskB,在其中使用TaskA.我知道我可以像使用普通类一样使用TaskA,只需从TaskB调用它的execute方法.但你认为这是合情合理的吗?在执行TaskB时,是否仍会记录来自TaskA的日志消息?

msbuild

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

检查TCP连接是否处于活动状态的最佳方法

给定IP地址列表如何以编程方式检查本地计算机是否仍具有到这些IP地址的活动TCP连接?我正在使用C#.

.net c# connection tcp ip-address

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

关于如何将无模式消息框显示为工具提示的想法

每当用户将鼠标悬停在菜单项上时,我都需要显示无模式消息框.我不能使用messagebox.show(...),因为它是一个模态.所以我所做的是创建一个单独的窗体,并使用菜单项上的悬停事件显示窗体.我有两个问题:

1)当窗体显示时,菜单失去了可见性.
2)窗口表单不会出现在菜单项旁边,就像工具提示一样.

关于如何定制组件的工具提示以使其外观和行为类似于Windows窗体的任何想法?

c# tooltip winforms

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

以编程方式分配Fogbugz案例

我想编写一个以编程方式分配Fogbugz案例的应用程序,我将如何实现这一目标?在以下任何情况下,是否可以实现此目的:

  • 用户在我的应用程序的输入字段中输入文本和FogBugz的报告是在"说明"字段中填入用户输入文本浏览器中打开

  • fogbugz报告被分配给应用程序中的指定用户,而浏览器甚至没有被打开,即报告直接存储在数据库中.

我打算将默认值添加到其他字段中,因此我假设将该文本添加到"note"字段的过程相同.

fogbugz

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

为什么这个c ++代码不能编译?

Seeig我是C++的新手我以为我会尝试编写一个非常简单的控制台应用程序来填充2D数组并显示其内容.

但是我写的代码不会编译.

我得到的一些错误是:

错误C2065:'box':未声明的标识符
错误C2228:'.GenerateBox'的左边必须有class/struct/union

这是我的代码:

#include <iostream>
using namespace std;

int main()
{
  Box box;
  box.GenerateBox();
}

class Box
{
private:
  static int const maxWidth = 135;
  static int const maxHeight = 60; 
  char arrTest[maxWidth][maxHeight];

public:
    void GenerateBox()
    {
      for (int i=0; i<maxHeight; i++)
        for (int k=0; k<maxWidth; k++)
        {
          arrTest[i][k] = 'x';
        }

      for (int i=0; i<maxHeight; i++)
      {
        for (int k=0; k<maxWidth; k++)
        {
          cout << arrTest[i][k];
        }
           cout << "\n";
      }
    }
};
Run Code Online (Sandbox Code Playgroud)

有什么想法导致这些错误吗?

c++ visual-c++

4
推荐指数
3
解决办法
299
查看次数

枚举没有在WCF中序列化

我遇到了在我的WCF应用程序中序列化枚举的问题.

我有一个Account继承自IAccount如下定义的接口的类:

namespace MyNamespace
{
   public interface IAccount
   {
      public string FirstName { get; set; }
      public string LastName { get; set; }
      public string EmailAddress { get; set; }
      public Country Country { get; set; }
   }
}
Run Code Online (Sandbox Code Playgroud)

Account继承自的类IAccount定义为:

namespace MyNamespace
{
   [DataContract]
   public Account : IAccount
   {
    [DataMember]          
    public string FirstName { get; set; }

    [DataMember] 
    public string LastName { get; set; }

    [DataMember] 
    public string EmailAddress { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# wcf web-services

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

无法为模块创建单元测试 - 这是否表示设计错误?

我有一个应用程序返回依赖于指定时间的数据,我可以指定天,月或年.问题是,如果我今天要运行该应用程序并要求它返回1个月前的数据,并且在3个月的时间内我要求该应用程序返回该日期前一个月的数据(即从该日期开始的1个月) )结果显然会有所不同.由于这种动态特性,我发现很难创建单元测试,因为我必须根据运行测试的时间来更改日期.这是否表示设计不好或者这是一个例外情况?

unit-testing

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