Tag: C#的

为什么在很多C ++标准库代码中,不等式被testing为(!(a == b))?

这是来自C ++标准库remove代码的代码。 为什么不平等testing( if (!(*first == val))而不是if (*first != val) ? template <class ForwardIterator, class T> ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& val) { ForwardIterator result = first; while (first!=last) { if (!(*first == val)) { *result = *first; ++result; } ++first; } return result; }

在Moq框架中设置asynchronous任务callback

我有一个接口声明 Task DoSomethingAsync(); 我正在使用MoqFramework进行testing: [TestMethod()] public async Task MyAsyncTest() { Mock<ISomeInterface> mock = new Mock<ISomeInterface>(); mock.Setup(arg => arg.DoSomethingAsync()).Callback(() => { <my code here> }); … } 然后在我的testing中,我执行调用await DoSomethingAsync()的代码。 而testing只是在这一行失败。 我究竟做错了什么?

如何在Ubuntu上安装OpenSSL库?

我试图在使用OpenSSL 1.0.0的Ubuntu 10.04 LTS上构build一些代码。 当我运行make时,它会用“-lssl”选项调用g ++。 来源包括: #include <openssl/bio.h> #include <openssl/buffer.h> #include <openssl/des.h> #include <openssl/evp.h> #include <openssl/pem.h> #include <openssl/rsa.h> 我跑了: $ sudo apt-get install openssl Reading package lists… Done Building dependency tree Reading state information… Done openssl is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded. 但我猜openssl包不包括库。 […]

在循环中声明variables是否有任何开销? (C ++)

我只是想知道如果你做了这样的事情,是否会有速度或效率的损失: int i = 0; while(i < 100) { int var = 4; i++; } 它声明int var一百次。 在我看来,似乎会有,但我不确定。 相反,这样做会更实际/更快: int i = 0; int var; while(i < 100) { var = 4; i++; } 还是它们是相同的,速度和效率?

如何find活动的app.config文件的path?

我试图完成这个exception处理程序: if (ConfigurationManager.ConnectionStrings["ConnectionString"]==null) { string pathOfActiveConfigFile = …? throw new ConfigurationErrorsException( "You either forgot to set the connection string, or " + "you're using a unit test framework that looks for "+ "the config file in strange places, update this file : " + pathOfActiveConfigFile); } 这个问题似乎只发生在我使用nUnit的时候。

什么时候应该在ASP.NET MVC中使用asynchronous控制器?

我有一些担心在ASP.NET MVC中使用asynchronous操作。 它什么时候提高了我的应用程序的性能,什么时候没有 ? 在ASP.NET MVC中处处使用asynchronous动作是否好? 关于等待的方法:当我想查询一个数据库时(通过EF / NHibernate /其他ORM),我应该使用asynchronous/等待关键字? 可以使用多less次等待关键字来在一个单一的操作方法中asynchronous查询数据库?

将Newtonsoft.Json.Linq.JArray转换为特定对象types的列表

我有以下{Newtonsoft.Json.Linq.JArray}types的variables。 properties["Value"] {[ { "Name": "Username", "Selected": true }, { "Name": "Password", "Selected": true } ]} 我想完成的是将其转换为List<SelectableEnumItem>其中SelectableEnumItem是以下types: public class SelectableEnumItem { public string Name { get; set; } public bool Selected { get; set; } } 我对编程相当内疚,我不确定这是否可能。 任何工作示例的帮助将不胜感激。

C#对象池模式的实现

有没有人有一个很好的资源实施共享对象池战略的有限资源的Sql连接池? (即完全实现它是线程安全的)。 为了跟进@Aaronaught的澄清要求,池的使用将是负载平衡请求到外部服务。 把它放在一个可能更容易立即理解的场景中,而不是我的直接情景。 我有一个会话对象,其function类似于NHibernate的ISession对象。 每个独特的会话pipe理它连接到数据库。 目前我有1长时间运行的会话对象,并遇到问题,我的服务提供商是速率限制我个人会话的使用。 由于他们没有期望将一个会话视为一个长期运行的服务帐户,他们显然把它视为一个锤击他们的服务的客户端。 这使我想到我的问题,而不是有一个单独的会话,我会创build一个不同的会话池,并跨越这些多个会话将请求分离到服务,而不是像我以前那样创build一个焦点。 希望背景提供一些价值,但直接回答你的一些问题: 问:创build对象是否昂贵? 答:没有对象是一个有限的资源池 问:他们会被频繁获得/释放吗? 答:是的,他们可以再次想到NHibernate的ISessions,其中1通常是在每个页面请求期间获取和发布的。 问:简单的先到先得的服务是否足够,还是需要更聪明的东西,即能够防止饥饿? 答:一个简单的循环型分布就足够了,通过饥饿我假设你是指如果没有可用的会话,呼叫者被阻止等待发布。 这是不适用的,因为会话可以由不同的呼叫者共享。 我的目标是分配使用跨多个会话,而不是一个单一的会议。 我认为这可能与对象池的正常使用有所分歧,这就是为什么我最初离开这个部分并计划只是为了适应模式,允许共享对象,而不是让饥饿的情况发生。 问:关于优先级,懒惰与急切加载等事情呢? 答:不涉及优先级,为了简单起见,假设我将在创build池本身时创build可用对象池。

为什么这个string的长度比它里面的字符长呢?

此代码: string a = "abc"; string b = "A𠈓C"; Console.WriteLine("Length a = {0}", a.Length); Console.WriteLine("Length b = {0}", b.Length); 输出: Length a = 3 Length b = 4 为什么? 我能想象的唯一的事情就是中文字符长度为2个字节, .Length方法返回字节数。

Moq第一次和第二次不同的返回值

我有这样的testing: [TestCase("~/page/myaction")] public void Page_With_Custom_Action(string path) { // Arrange var pathData = new Mock<IPathData>(); var pageModel = new Mock<IPageModel>(); var repository = new Mock<IPageRepository>(); var mapper = new Mock<IControllerMapper>(); var container = new Mock<IContainer>(); container.Setup(x => x.GetInstance<IPageRepository>()).Returns(repository.Object); repository.Setup(x => x.GetPageByUrl<IPageModel>(path)).Returns(() => pageModel.Object); pathData.Setup(x => x.Action).Returns("myaction"); pathData.Setup(x => x.Controller).Returns("page"); var resolver = new DashboardPathResolver(pathData.Object, repository.Object, mapper.Object, […]