小编Bow*_*opa的帖子

varchar(max)无处不在?

使所有Sql Server 2008字符串列varchar(max)有问题吗?我允许的字符串大小由应用程序管理.数据库应该坚持我给它的东西.通过在Sql Server 2008中将所有字符串列声明为varchar(max)类型,无论实际进入它们的数据大小如何,我都会受到性能影响吗?

varchar sql-server-2008

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

如何在Visual Studio 2015中禁用灯泡?

如何在Visual Studio 2015中完全禁用灯泡?这让我想起了Clippy.

visual-studio-2015

38
推荐指数
1
解决办法
9232
查看次数

如何判断Socket何时断开连接

在客户端,我需要知道何时/如果我的套接字连接已被破坏.但是,即使服务器端已断开连接并且我已尝试通过它发送数据,Socket.Connected属性也始终返回true.任何人都可以帮我弄清楚这里发生了什么.我需要知道套接字何时断开连接.

        Socket serverSocket = null;
        TcpListener listener = new TcpListener(1530);
        listener.Start();
        listener.BeginAcceptSocket(new AsyncCallback(delegate(IAsyncResult result)
        {
            Debug.WriteLine("ACCEPTING SOCKET CONNECTION");
            TcpListener currentListener = (TcpListener)result.AsyncState;
            serverSocket = currentListener.EndAcceptSocket(result);
        }), listener);


        Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        Debug.WriteLine("client socket connected: " + clientSocket.Connected);//should be FALSE, and it is
        clientSocket.Connect("localhost", 1530);
        Debug.WriteLine("client socket connected: " + clientSocket.Connected);//should be TRUE, and it is

        Thread.Sleep(1000);
        serverSocket.Close();//closing the server socket here
        Thread.Sleep(1000);

        clientSocket.Send(new byte[0]);//sending data should cause the socket to update its Connected property.
        Debug.WriteLine("client socket connected: …
Run Code Online (Sandbox Code Playgroud)

.net c# sockets

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

System.String的内部

我使用反射来查看System.String的内部字段,我找到了三个字段:

m_arrayLength

m_stringLength

m_firstChar
Run Code Online (Sandbox Code Playgroud)

我不明白这是如何工作的.

m_arrayLength是某个数组的长度.这个阵列在哪里?它显然不是字符串类的成员字段.

m_stringLength很有意义.这是字符串的长度.

m_firstChar是字符串中的第一个字符.

所以我的问题是字符串的其余字符在哪里?如果不在字符串类中,则存储字符串的内容在哪里?

c# string reflection

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

12
推荐指数
1
解决办法
5441
查看次数

如何在没有拳击的情况下存储不同类型的结构

我正在创建一个用于XNA游戏的消息传递系统.我的消息类型是结构,因为我希望它们以值类型的方式运行.

struct MyMessageType1 : IMessage {}
struct MyMessageType2 : IMessage {}

List<IMessage> messageQueue = new List<IMessage>();
Run Code Online (Sandbox Code Playgroud)

我希望能够在我的消息队列中存储不同类型的消息,但我想这样做而不会将它们中的任何一个装箱.

如果我有结构实现了一个接口,如IMessage,我尝试将它们存储在List中,它们就会被装箱.

我不知道所有可能的消息类型,所以我不能只为每种类型硬编码一个列表.

所以问题是如何在不加框的情况下存储不同类型的结构列表?

c# generics xna struct boxing

9
推荐指数
3
解决办法
2903
查看次数

从ASP.NET 5引用.NET 4.6项目会导致生成错误

在我的ASP.NET 5 RC1项目中(仅针对dnx46)我正在尝试添加一个针对.net 4.6的(经典)类库项目的引用.

我在构建时遇到此错误:...\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5):警告MSB3274:无法解析主要引用"...\ClassLibrary1.dll"因为它是针对".NETFramework,Version = v4.6"框架构建的.这是比当前目标框架".NETFramework,Version = v4.5.1"更高的版本.

为什么会这样?我的ASP.NET 5项目没有针对4.5.1.根据project.json文件,它只针对dnx46.在任何地方我都找不到.net 4.5.1.

这是我的WebApplication项目的project.json:

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final"
  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  },

  "frameworks": {
    "dnx46": {
      "dependencies": {
        "ClassLibrary1": "1.0.0-*"
      }
    },
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是"包装"过程为我的ClassLibrary项目创建的project.json:

{
  "version": "1.0.0-*",
  "frameworks": {
    "net46": {
      "wrappedProject": "../../ClassLibrary1/ClassLibrary1.csproj",
      "bin": {
        "assembly": "../../ClassLibrary1/obj/{configuration}/ClassLibrary1.dll",
        "pdb": "../../ClassLibrary1/obj/{configuration}/ClassLibrary1.pdb"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

asp.net-core

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

按Azure DocumentDB中的Id访问资源

我刚刚开始使用Azure DocumentDB,我的兴奋变得混乱.这件事很奇怪.似乎所有东西(数据库,集合,文档)都不需要通过它的id访问,而是通过它的'SelfLink'访问.例如:

我创建了一个数据库:

public void CreateDatabase()
{
    using (var client = new DocumentClient(new Uri(endpoint), authKey))
    {
        Database db = new Database()
        {
            Id = "TestDB",
        };
        client.CreateDatabaseAsync(db).Wait();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后有时候我想创建一个Collection:

public void CreateCollection()
{
    using (var client = new DocumentClient(new Uri(endpoint), authKey))
    {
        DocumentCollection collection = new DocumentCollection()
        {
            Id = "TestCollection",
        };
        client.CreateDocumentCollectionAsync(databaseLink: "???", documentCollection: collection).Wait();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我真正喜欢的是我的数据库ID时,api想要一个'databaseLink'.我没有'databaseLink'方便.DocumentDB是否真的希望我下载所有数据库的列表,并在每次我想做任何事情时都搜索数据库链接?

这个问题一直存在.如果没有集合的"链接",我无法将文档保存到集合中.

public void CreateDocument()
{
    using (var client = new DocumentClient(new Uri(endpoint), authKey))
    {
        client.CreateDocumentAsync(documentCollectionLink: "???", document: new { Name …
Run Code Online (Sandbox Code Playgroud)

azure azure-cosmosdb

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

在CosmosDB中索引数组

为什么CosmosDB默认不进行索引?默认索引路径是

"path": "/*"
Run Code Online (Sandbox Code Playgroud)

这不是指"索引一切"吗?不是"除了数组之外的所有索引".

如果我将我的数组字段添加到索引中,如下所示:

"path": "/tags/[]/?"
Run Code Online (Sandbox Code Playgroud)

它将工作并开始索引特定的数组字段.

但我的问题是为什么不"索引一切"索引一切?

编辑:这是一篇描述我所看到的行为的博客文章.http://www.devwithadam.com/2017/08/querying-for-items-in-array-in-cosmosdb.html Array_Contains查询非常慢,显然没有使用索引.如果您明确地将相关字段添加到索引中,那么查询很快(显然它们开始使用索引).

azure azure-cosmosdb

7
推荐指数
1
解决办法
1556
查看次数

在Firefox中使用"后退"按钮时,表单提交按钮保持禁用状

我点击后使用了一些jquery来禁用表单提交按钮,以防止意外重复点击.这适用于除Firefox以外的所有浏览器.在Firefox中,如果用户使用浏览器"后退"按钮在发生提交按钮禁用后返回页面,则仍会禁用提交按钮.有没有解决这个问题的方法?

firefox jquery back-button submit-button

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