Tag: C#的

公众朋友交换成员函数

在复制和交换成语的美丽答案有一段代码,我需要一点帮助: class dumb_array { public: // … friend void swap(dumb_array& first, dumb_array& second) // nothrow { using std::swap; swap(first.mSize, second.mSize); swap(first.mArray, second.mArray); } // … }; 他又加了一张纸条 还有其他的说法,我们应该专门为我们的typesstd :: swap,提供一个在一个自由function交换,一个类交换,但这是不必要的:任何正确使用交换将通过一个非限定的调用,我们的function将通过ADLfind。 一个function就可以了。 和friend我有点“不友好”的说法,我必须承认。 所以,我的主要问题是: 看起来像一个免费的function ,但它的内部类体呢? 为什么不是这个swap静态 ? 它显然不使用任何成员variables。 “任何适当的交换使用将通过ADLfind交换” ? ADL将search命名空间,对吗? 但是,它也看内部类? 或者在这里friend进来? 副题: 用C ++ 11,我应该用noexcept标记我的swap吗? 用C ++ 11和它的范围 ,我应该把friend iter begin()放在friend iter begin()和friend […]

为什么要创build一个ASP.NET 5类库项目?

我想弄清楚什么是“ASP.NET 5类库”(vNext)C#项目与ASP.NET有关。 为什么用这个模板创build一个项目,而不是一个普通的C#“类库”项目? 我喜欢新function,比如project.json文件而不是.csproj文件等,但是当项目与ASP.NET或IIS等无关时,创build“ASP.NET”类库似乎不正确这只是业务逻辑层的一个项目。 一个新的WebApi ASP.NET网站最终会引用这个项目,但在这一点上并不相关。 它只是名字不好吗? 它应该被称为“vNext类库”,而不是使用一个像Web应用程序的图标?

如何编写自动缩放到系统字体和dpi设置的WinForms代码?

简介:有很多评论说“WinForms不能自动缩放到DPI /字体设置,切换到WPF”。 但是,我认为这是基于.NET 1.1; 看来他们在.NET 2.0中实现了自动扩展的function。 至less根据我们的研究和testing到目前为止。 但是,如果你们中有些人知道的更好,我们很乐意听到你的消息。 (请不要争论我们应该切换到WPF …这不是一个选项。) 问题: 什么在WinForms不能自动缩放,因此应该避免? 在编写WinForms代码时,程序员应遵循什么样的devise指导方针,使其能自动扩展? 我们已经确定的devise指南迄今为止: 请参阅下面的社区wiki答案 。 这些是不正确还是不足? 我们应该采用其他指导方针吗? 还有其他的模式需要避免吗? 对此的任何其他指导将非常感激。

Moq:在不可覆盖的成员上设置无效:x => x.GetByTitle(“asdf”)

不知道我怎么能解决这个问题,试图做一个unit testing的方法“GetByTitle” 这是我的定义: public class ArticleDAO : GenericNHibernateDAO(IArticle, int>, IArticleDAO { public IArticle GetByTitle(string title) { IQuery query = Session.CreateQuery("…") return query.UniqueResult<IArticle>(); } } public interface IArticleDAO { IArticle GetByTitle(string title); } unit testing: [Test] public void can_load_by_title() { _mockDaoFactory.Setup(x => x.GetArticleDao()) .Returns(_mockArticleDao.Object); _mockArticleDao.Setup(x => x.GetByTitle("some title")) .Returns(article1.Object); _articleManager.LoadArticle("some title"); Assert.IsNotNull(_articleManager.Article); } 运行testing给我的错误: System.ArgumentException: Invalid […]

获取TransactionScope使用asynchronous/等待

我正在尝试将async / await集成到我们的服务总线中。 我基于此示例实现了SingleThreadSynchronizationContext http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx 。 它的工作正常,除了一件事: TransactionScope 。 我等待TransactionScope内部的东西,它打破了TransactionScope 。 TransactionScope似乎并不async / await ,当然是因为它使用ThreadStaticAttribute将事物存储在线程中。 我得到这个例外: “TransactionScope嵌套错误。” 我尝试在排队任务之前保存TransactionScope数据,并在运行之前将其还原,但似乎没有改变任何事情。 而TransactionScope代码是一团糟,所以真的很难理解那里发生的事情。 有没有办法让它工作? 是否有一些替代TransactionScope ?

Visual Studio 2015中断未处理的exception不起作用

Visual Studio曾经有一个特定的checkbox来“断开未处理的exception”。 在2015年,这已被删除(或移动的地方,我找不到)。 所以现在我的转换项目不再中断,如果我没有提供用户级exception处理程序。 我不想打破所有“抛出的exception”,因为我处理特定的exception。 就在我无法提供具体处理程序的地方。 现在我的代码只是退出当前的过程,并继续执行在下一个调用堆栈位置,不好。 任何人都知道如何回到Visual Studio 2015? 我昨天刚刚升级到社区版。

libpng警告:iCCP:已知错误的sRGBconfiguration文件

我正在尝试使用SDL加载PNG文件,但该程序不起作用,并且在控制台中出现此错误 “libpng警告:iCCP:已知不正确的sRGBconfiguration文件” 为什么会出现此警告? 我该怎么办才能解决这个问题?

“带有语句正文的lambdaexpression式不能转换为expression式树”

在使用EntityFramework时 ,当试图编译以下代码时,出现错误“ A lambda expression with a statement body cannot be converted to an expression tree ”: Obj[] myArray = objects.Select(o => { var someLocalVar = o.someVar; return new Obj() { Var1 = someLocalVar, Var2 = o.var2 }; }).ToArray(); 我不知道错误是什么意思,最重要的是如何解决它。 任何帮助?

在.NET中如何产生和等待实现控制stream?

正如我所理解的yield关键字,如果从一个迭代器块内部使用,它会将控制stream返回给调用代码,并且当再次调用迭代器时,它会从中断处继续。 另外,不仅等待被叫方等待,而且还向主叫方返回控制权,只有当主叫方awaits方法时,才能从中断的位置继续。 换句话说,没有线程 ,asynchronous和等待的“并发”是由控制的巧妙stream动造成的错觉,其细节被语法掩盖。 现在,我是一个前汇编程序员,我非常熟悉指令指针,堆栈等,我得到正常的控制stream(子例程,recursion,循环,分支)如何工作。 但是这些新的结构 – 我没有得到它们。 当await到达时,运行时如何知道下一步应该执行哪一段代码? 它是如何知道什么时候可以恢复的呢?它又如何记住它在哪里? 目前的调用堆栈发生了什么,它以某种方式得到保存? 如果调用方法在进行其他方法调用之前await什么?为什么堆栈不被覆盖? 那么在这种情况下,运行时如何解决这个问题呢? 当达到yield时,运行时如何跟踪应该提取事物的点? 如何保存迭代器状态?

我在哪里可以find一个NuGet包升级到System.Web.Http v5.0.0.0?

刚刚升级了一个ASP.NET MVC4项目使用Unity.WebApi版本5.0.0.0,它需要System.Web.Http v 5.0.0.0根据以下错误: Assembly 'Unity.WebApi, Version=5.1.0.0, Culture=neutral, PublicKeyToken=43da31bc42a85347' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 我目前正在引用System.Web.Http v4.0,但有以下NuGet包升级到其各自的最新版本: ANTLRv3 Microsoft ASP.NET通用提供程序 Microsoft.Web.Infrastructure 微软ASP.NET MVC Microsoft ASP.NET Razor Microsoft ASP.NET通用提供程序核心库 Microsoft ASP.NET通用提供程序 Microsoft ASP.NET Web API 2客户端 微软ASP.NET Web API 2核心 Microsoft ASP.NET Web API 2 […]