草庐IT

代码雨

全部标签

c# - 可以从 WebClient 继承而我的代码不是 "design time component"吗?

我有一段代码是这样的:publicclassNoFollowWebClient:WebClient{protectedoverrideWebRequestGetWebRequest(Uriaddress){varrequest=(HttpWebRequest)base.GetWebRequest(address);request.AllowAutoRedirect=false;returnrequest;}}不过,每当我将它添加到.cs文件时,VisualStudio2012都会以其无穷的智慧将我的C#源文件转换为“设计时组件”。因此,当我现在双击该文件时,我看到的不是我的C#代码,而

c# - Entity Framework 代码优先 : CASCADE DELETE for same table many-to-many relationship

我在EntityFramework和同一实体的多对多关系方面存在条目删除问题。考虑这个简单的例子:实体:publicclassUserEntity{//...publicvirtualCollectionFriends{get;set;}}流畅的API配置:modelBuilder.Entity().HasMany(u=>u.Friends).WithMany().Map(m=>{m.MapLeftKey("UserId");m.MapRightKey("FriendId");m.ToTable("FriendshipRelation");});我是否正确,无法在FluentAPI中定

c# - 在四核上使用线程可将代码速度提高 65%?

这个样本code在四核处理器上比较串行方法和线程方法。该代码仅使用GetPixel()从4个图像中读取所有像素。我发现速度提高了大约65%,为什么它不等于75%,因为我有4个内核并且所有内核都已被充分利用?附言:你能检查代码吗,因为我没有做任何I/O,并且没有其他进程在机器上运行(正常的Windows进程) 最佳答案 它可以是任何数量的东西。想到的一对夫妇管理不同线程的开销。其他进程正在同时使用系统中的资源。 关于c#-在四核上使用线程可将代码速度提高65%?,我们在StackOverf

c# - 如何抑制对生成代码的代码分析?

我有一个Silverlight项目,其中包含服务引用所在的生成的Reference.cs文件。该类具有[GeneratedCode]属性,并且在项目配置中禁用了对生成代码的代码分析(发布和调试)。我做错了什么? 最佳答案 也许您应该尝试适用于StyleCop的解决方案:Put".Designer.cs"totheendofthenameofthefileyoudon’twantStyleCoptocheck.Orcallthethe[sic]class,andthefilecontainingit,"NativeMethods".M

c# - 如何让代码契约相信变量不为空?

我有一些工厂方法publicTCreate()whereT:class{Contract.Ensures(Contract.Result()!=null);Tresult=this.unityContainer.Resolve();returnresult;}我尝试构建项目时收到警告:CodeContracts:确保未经证实:Contract.Result()!=null我知道IUnityContainer接口(interface)没有任何契约,因此代码契约认为变量可能为null,并且无法证明Create()将返回非空结果。在这种情况下,我如何让代码契约相信result变量不为空?我首

c# - MSTest 显示复合 bool 表达式的部分代码覆盖率

从Microsoft的文档中,部分覆盖的代码是“......行内的一些代码块未执行。”我对这个代码感到很困惑(为简洁起见进行了简化):给定这个方法:publicListCodeUnderTest(){varcollection=newList{"test1","test2","test3"};returncollection.Where(x=>x.StartsWith("t")&&x=="test2").ToList();}这个测试:[TestMethod]publicvoidTest(){varresult=newClass1().CodeUnderTest();Collection

c# - 在运行内部代码之前,在锁之前和锁内设置 "double check"是否可以?

在处理线程安全时,我发现自己总是在执行锁block中的代码之前“仔细检查”,我想知道自己是否做对了。考虑以下三种做同样事情的方法:示例1:privatestaticSomeCollectionMyCollection;privatestaticObjectlocker;privatevoidDoSomething(stringkey){if(MyCollection[key]==null){lock(locker){MyCollection[key]=DoSomethingExpensive();}}DoSomethingWithResult(MyCollection[key]);}示

c# - 通过nuget包添加代码分析规则集

我正在尝试构建一个自动添加我们公司的代码分析字典并可更新的NuGet包。规则集添加到content文件夹中,现在我想使用install.ps1脚本将规则集添加到项目文件中。我想出了使用envDTE的方法,但是除了这个我找不到CodeAnalysisRuleset节点的压倒性对象图之外,我找不到太多关于它的有用文档。http://msdn.microsoft.com/en-us/library/za2b25t3(v=vs.100).aspx我走的路对吗?有没有关于如何在NuGetpowershell中使用envDTE的相关教程/文档?如何运行/调试我的安装脚本,而不必将其实际添加到包中并

c# - yield return执行后的代码

考虑以下示例:classYieldTest{staticvoidMain(string[]args){varres=Create(newstring[]{"112123","1234","12345"});}staticIEnumerableCreate(IEnumerablestrings){foreach(stringsinstrings){yieldreturns.Length;if(s.Contains('')){string[]tokens=s.Split('');foreach(stringtintokens){yieldreturnt.Length;}}}}}调用Crea

c# - 异步(非阻塞)代码的可伸缩性优势是什么?

阻塞线程被认为是一种不好的做法,主要原因有两个:线程消耗内存。线程通过上下文切换消耗处理时间。以下是我因这些原因而遇到的困难:非阻塞的异步代码也应该消耗几乎相同数量的内存,因为调用堆栈应该保存在执行异步调用之前的某处(上下文被保存,之后全部)。如果线程效率非常低(在内存方面),为什么OS/CLR不提供更轻量级的线程版本(仅保存调用堆栈的上下文而不保存其他内容)?这不是解决内存问题的更简洁的解决方案,而不是迫使我们以异步方式重新构建我们的程序(这要复杂得多,更难理解和维护)吗?当线程被阻塞时,操作系统会将其置于等待状态。操作系统不会上下文切换到sleep线程。由于线程生命周期的95%以上