小编Ste*_*ert的帖子

C++ Boost Multi Index,Modify需要Functor,无法编译

我已经设置了一个Windows C++ Visual Studio项目(VS9)来测试Boost :: Multi_Index的使用.正在设置容器以存储指向自定义对象FC :: ClientOrder的共享指针.对于测试,对象非常简单,只存储一个字符串和一个char变量.Boost版本是1_46_0

我已经将Multi_Index容器配置为在共享指针上作为标识进行索引,并使用成员函数来访问两个成员变量的索引.这似乎很好,运作良好.

我遇到了modify()方法的问题.我意识到如果我想更新属于索引的任何成员变量,我必须使用modify().我也意识到我必须首先使用find()在容器中找到FC :: ClientOrder对象,然后将迭代器传递给modify()以进行更改.

如果我通过标识,共享指针本身找到FC :: ClientOrder共享指针,一切都运行良好,并且modify()很高兴.

如果我通过成员函数clOrdID()找到FC :: ClientOrder共享指针(基本上查找它的ID上的顺序,非常常用),那么即使语法相同,modify()函数也会失败.我得到一个编译器错误,这似乎表明类型问题,但我发现很难理解什么是错误的.

modify()只能使用基于身份索引的迭代器吗?如果是这样,要通过它的clOrdID编辑订单,我将不得不进行两次查找,一次查找容器中的顺序(并获取它的spOrder变量),然后根据spOrder值创建一个迭代器.这似乎打败了能够通过clOrdID()值提取订单的目标.

我想我误解了modify()函数需要什么.现在,我可以通过使用双重查找解决这个问题,但如果有人有解决方案,我将非常感激.我对Functors很新,所以也许我误解了modify()需要什么.

在此先感谢您的帮助,我们将不胜感激.示例代码块应遵循......

///////////////////////////////////////////////////////////////////////////////
// FILE #1: FCClientOrder.h
///////////////////////////////////////////////////////////////////////////////

#ifndef FCClientOrder_H
#define FCClientOrder_H

#include <string>                                                               // Changed to use std::string

////////////////////////////////////////////////////////////////////////////////
// ClientOrder v3: RAM definition of a market order - stripped out for testing

namespace FC
{

class ClientOrder
{
public:


    ClientOrder();                                                              // Default Ctor

    virtual ~ClientOrder();                                                     // Dtor


    //////////////////////
    // ACCESSOR FUNCTIONS

    std::string clOrdID(void) const;                                            // Get
    void clOrdID(const std::string& …
Run Code Online (Sandbox Code Playgroud)

c++ boost multi-index

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

用于WebEmail的Log4Net SmtpAppender - 不发送

我正在努力让Log4Net使用Yahoo或Gmail等网络电子邮件.如果你有这个工作,我会感谢一些帮助,并提前感谢.

我有一个默认的根记录器,带有RollingFileAppender和一个SmtpAppender.文件追加器工作正常.SmtpAppender什么都没给我.

我从诊断按钮单击调用记录器...

protected void btnReloadContractConfig_Click(object sender, EventArgs e)
{
    // DIAGNOSTIC - Test email logger
    log4net.ILog logger = log4net.LogManager.GetLogger("root");
    logger.Error("btnReloadContractConfig_Click() - This is a TEST of delivery of error messages via email, triggered from the Admin.aspx.cs code file.");
}
Run Code Online (Sandbox Code Playgroud)

...而RollingFileAppender正在收到消息......

LOC = 20120921-12:03:16.319,UTC = 20120921-11:03:16.319,DELTA = 10078,THR = 6,ERROR,LOG = root,[(null)] - btnReloadContractConfig_Click() - 这是交付测试通过电子邮件发送的错误消息,从Admin.aspx.cs代码文件触发.

Log4Net的web.config条目在这里::

  <appSettings>
    <add key="log4net.Internal.Debug" value="true"/>        
  <appSettings>


  <log4net 
    xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
      <appender-ref ref="SmtpAppender" />
    </root>

    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file …
Run Code Online (Sandbox Code Playgroud)

log4net smtpappender

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

Chrome Postman不显示Cookie按钮

我已经使用Postman多年了,这很棒.我使用的是Windows 10,Postman是从链接启动的.

我现在必须对Cookies进行一些处理,但是我无法看到附近发送的Cookies按钮.我已经安装了Interceptor并在应用程序中打开它,重新启动等,但仍然没有.

作为一种解决方法,我相信我可以手动获取或设置cookie,但我不知道如何做到这一点.我希望完全控制cookie,即到期时间和协议等.

在此先感谢您的帮助.

cookies postman

8
推荐指数
1
解决办法
4751
查看次数

如何在C#AspNet Core中模拟LoggerFactory

我正在尝试为控制器操作编写一些单元测试.为此,我使用XUnit和Moq.控制器在构造函数中注入ILoggerFactory.一个Moq如何进行测试?

我已经尝试为控制器类模拟一个Logger,然后模拟CreateLogger以返回模拟Logger,但是当调用LogInformation()函数时,我不断获得各种测试运行时NullReferenceExceptions.

        //   Logger that yields only disappointment...          
        var mockLogger = new Mock<ILogger<JwtController>>();
        mockLogger.Setup(ml => ml.Log(It.IsAny<LogLevel>(), It.IsAny<EventId>(), It.IsAny<object>(), It.IsAny<Exception>(), It.IsAny<Func<object, Exception, string>>()));
        var mockLoggerFactory = new Mock<ILoggerFactory>();
        mockLoggerFactory.Setup(mlf => mlf.CreateLogger("JwtController")).Returns(mockLogger.Object);
Run Code Online (Sandbox Code Playgroud)

我假设问题是正在调用LogInformation,这是一个扩展方法,那么如何moq呢?

c# unit-testing moq

7
推荐指数
3
解决办法
4896
查看次数

Git for Windows

我是Git for Windows的新用户.我已经安装了Google Code(1.8.1.2和1.7作为试用版).

我可以发出一些git命令,它们很好并且工作得很好.但是,'git diff'和'git log'命令不起作用.这些命令都回来了

'': : command not found
Run Code Online (Sandbox Code Playgroud)

我尝试过卸载并重新安装.我的机器上也有GitHub for Windows.该机器是Windows 7,非常新的版本.

任何人都可以帮助或给我诊断指针,为什么这两个命令失败?

windows git

6
推荐指数
1
解决办法
2272
查看次数

Visual Studio 2015 IIS Express 500错误

我有一个ASP.Net网站项目,我正在迁移到.Net 4.6.1.

我已经安装了Visual Studio 2015社区,我已成功编译并构建了网站及其组件DLL.

当我尝试使用IIS Express来调试F5时,我收到500错误...

HTTP Error 500.0 - Internal Server Error Tracing area "Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,Rewrite,RequestRouting" is not recognized

这告诉我,IIS Express没有安装我需要的模块.我认为可能没有安装ARR和URL Rewrite,所以我安装了这些,没有任何改变.

我的生产中的ApplicationPool使用PreWarmCache技术启动并避免"首次点击"延迟,并进行其他一次性启动工作.

帮助让IIS Express运行该站点将非常有用.

asp.net iis visual-studio-2015

6
推荐指数
1
解决办法
5139
查看次数

如何通过WebAPI2进行C#Ajax Comet?

我有一个使用Ajax Comet长轮询的C#ASP.Net(非MVC)项目.网页对由实现IHttpAsyncHandler的类处理的端点进行HTTP调用.

如果没有任何内容(在n秒内)报告给网页,则会发送空的HTTP响应,并重新调用网页.如果有要发送的内容,则发送更新,并且网页会处理并重新呼叫.这是非常标准的推送技术,效果很好.

现在我正在尝试使用WebAPI2,非MVC添加API端点.我有基于ApiController类的同步控制器工作.

我想为API调用设置推送技术,以便API用户不必轮询更新.

与上述方法类似,接收API端点调用,并存储上下文.如果超时到期,则呼叫返回空,呼叫者应再次呼叫.如果数据在超时内更新,则数据将返回给调用者,然后调用者将再次调用并等待更多更新.

问题是似乎没有ApiController的异步版本.目的是释放处理API调用的线程,将其返回到池中,然后当有可用数据或超时到期时,使用工作线程返回响应.

如何设置ApiController,以便释放处理调用的线程,存储调用上下文,我可以在以后的某个时间点发送响应?

c# ajax comet long-polling asp.net-web-api2

6
推荐指数
1
解决办法
450
查看次数

ASP.Net 4非MVC API路由处理程序设计

我有一个ASP.Net 4网站,非MVC,即Forms Authenticated,我需要为它配备一个API.在googlage之后,似乎RESTful API将提供最大的可访问性.

对于某些Comet函数,我已经有异步自定义HTTP Handler代码了.我想在API中使用异步处理程序,以确保IIS线程池不被捆绑,并保持最佳性能.

我想尝试保持REST忠实并使用URI来访问和更改资源.是否有设计指南围绕这种事情,因为它似乎是许多开发人员将面临的任务?

我不确定是否为所有HTTP谓词触发的API使用一个处理程序,或者每个资源类型触发一个处理程序,或者从通用异步处理程序派生多个处理程序.任何指导将不胜感激.

c# asp.net api http

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

XML将单个字符串XML转换为格式良好的文件以进行编辑?

在数据库中,有一串+10000个字符串,采用XML格式.XML格式不正确,我需要修复它.我必须将字符串(其中没有CRLF)转换为可以合理编辑并更正标签的文件.

我能够将字符串提取到编辑器,它是转换为多线,缩进的XML,这很棘手.如何解决这类任务的任何帮助?

提前致谢.

xml string

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

C# Json 将任何动态对象转换为键值对

我正在编写一个工具,它将接收一个入站 Json 对象,并将其转换为键值记录(有时称为展平,也许)。目的是避免工具在获得非常大或非常嵌套的 Json 对象时损坏,因此我想避免递归。

一个示例对象可能是这样的(如下),包含嵌套数组、空值,你可以命名它,实际上是任何合法的 json ......

{
  "firstName": "John",
  "lastName": "Smith",
  "isAlive": true,
  "age": 25,
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021-3100"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "office",
      "number": "646 555-4567"
    },
    {
      "type": "mobile",
      "number": "123 456-7890"
    }
  ],
  "children": [],
  "spouse": null
}
Run Code Online (Sandbox Code Playgroud)

上面对象的期望输出将是对象的每个元素的键值对......

Key                     Value
/firstName              "John"
/lastName               "Smith"
/isAlive                "true"
/age                    "25"
/address
/address/streetAddress  "21 2nd Street"
/address/city           "New York"
/address/state …
Run Code Online (Sandbox Code Playgroud)

c# json dynamic json.net

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

SQL:过滤where子句中的case-statement数据替换

如果我有一个名为'Beasties'的表,并且我想对列中的数据值进行一些条件替换,例如Animal,然后对该列进行过滤,我会尝试这样做...

SELECT 
   (CASE Animal 
    WHEN 'Horse' THEN 'Zebra' 
    ELSE Animal
    END) AS Species
FROM Beasties 
WHERE Species='Zebra'
Run Code Online (Sandbox Code Playgroud)

但是T-SQL不允许WHERE子句,它只会让我使用Animal而不是Species.如何过滤重命名(因此编辑)的列值?

在此先感谢任何帮助.

sql sql-server where

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

用于从 HTTP 查询字符串中提取键值对的正则表达式

我正在使用一个数据分析包,它公开了一个用于字符串解析的 Regex 函数。我正在尝试解析来自以下格式的网站的响应...

key1=val1&key2=val2&key3=val3 ...
Run Code Online (Sandbox Code Playgroud)

[键和值可能是百分比编码的,但当前返回值不是,当前返回值是标记和其他字母数字信息]。

我理解这些数据是 www-form-urlencoded,或者它可能被称为查询字符串格式。

如果不能依赖键的顺序,则目标是提取给定键的值。例如,我可能知道我应该接收的密钥之一是“令牌”,那么我可以使用什么正则表达式模式来提取密钥“令牌”的值?我已经搜索过这个,但找不到任何可以满足我需要的东西,但如果有重复的问题,请提前道歉。

regex querystringparameter alteryx

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