【c# – 当使用Fakes时,在被测试的方法中调用私有方法的“模拟”】教程文章相关的互联网学习教程文章

从C#进行P / Invoke调用时,异步过程调用如何处理已封送的委托?【代码】

我想知道,当您在以下我的特殊情况下,通过P / Invoke将回调委托编组到DLL时,是否有可能成为本地世界中托管线程管理问题的受害者? This MSDN article on Managed and Unmanaged Threading in Windows状态: “操作系统ThreadId与托管线程没有固定的关系,因为非托管主机可以控制托管线程和非托管线程之间的关系.特别是,复杂的主机可以使用Fiber API针对同一操作系统线程调度许多托管线程. ,或在不同的操作系统线程之间移动托管线程.”...

C#在方法调用中扩展泛型类【代码】

我正在尝试编写一个传递通用参数的方法,该方法将使用通用参数扩展类,但是我不想将第二个通用参数传递给该方法.有没有一种方法可以在不传递两个通用参数的情况下实现我要执行的操作?// this base doesn't work because it expects a BaseReportViewModel<D> // I don't want to have to pass in two generic arguments from the child controller // this is what I don't want to do: this.ReportView<Report1ViewModel, Report1...

c#-响应网络代码的调用函数【代码】

我想知道,在尝试处理从网络源收到的代码时,如何避免出现巨大的switch语句?该消息带有一个操作码(int),要调用的函数取决于前面提到的操作码(不是我的设计,我不能影响它). 我需要调用一个函数来响应操作码,但是我不必一定要使用switch语句对操作码进行硬编码以映射到函数映射,因为如果网络模式发生更改,这将使其变得僵化且难以修复. tldr我如何将int绑定到函数-请注意,这些函数可能分布在整个解决方案中(每条消息可能需要不同的状态...

c#-非UI“调用线程无法访问此对象,因为其他线程拥有它”【代码】

我有以下代码:var queue = printer.PrintQueue; var canPrint = ! Dispatcher.CurrentDispatcher.Invoke(()=> queue.IsPaperJammed || queue.IsOutOfPaper || queue.IsInError || queue.HasPaperProblem);它抛出以下错误:The calling thread cannot access this object because a different thread owns it我已经在UI线程上尝试了此操作(使用如上所示的调度程序),并且在当前线程上(没有调度程序)尝试了此操作. 有没有办法询问一个...

c#-多态方法仅被调用一次就运行两次【代码】

这个问题已经在这里有了答案: > C# optional parameters on overridden methods 9个这是基于另一个我非常喜欢的有关多态性的SO问题.因此,我试用了它,并对其进行了修改以了解它.但是,这使我对多态性的理解不安. 我在一个类内部创建了一个接口,创建了一个“ A”类,并实现了接口方法.我还创建了另一个扩展了“ A”的类“ B”.以及扩展“ B”的另一个类“ C”. 运行它时,输...

c#-.NET Web服务客户端调用性能问题【代码】

我有一个正在调用WCF服务的ASP.NET MVC应用程序.以下是我如何处理每个请求的电话.var xml = "my xml string"; var ep = new EndpointAddress("http://myendpoint"); xml = new Proxy.ServiceClient(new NetTcpBinding(), ep).getNewXML(new Proxy.CallContext(), xml);我遇到的问题是请求数量而不是回收. 使用性能监视器查看下面的屏幕截图.我通过打开服务器上的Web浏览器并按住Enter键来运行此测试(每个请求都会执行一个表单发布,...

c#-通过多个线程调用静态方法-它们是否可以互相插入输入参数【代码】

我的代码被AJAX UI(多线程)调用,并在数据处理后通过Json发送输出.最近,在重构代码时,由于没有使用任何静态/共享数据,我们已将许多常见和重复的方法转移到一个单独的文件中,在此文件中将它们设为静态.以下是我们的静态方法的示例设计:public class Helper {public static C Method1(List<A> aList, List<B> bList){C objC = new C();// Create ObjC based on inputs aList and bListreturn objC;} }现在,我的理解是,以下调用将没有...

c#-如何用Moq调用方法时验证上下文条件【代码】

我正在使用Moq,并且在调用模拟方法时需要检查条件.在以下示例中,我尝试读取Property1属性,但这可以是任何表达式:var fooMock = new Mock<IFoo>(); fooMock.Setup(f => f.Method1()).Returns(null).Check(f => f.Property1 == true) // Invented method.Verifiable();我的最终目标是检查调用该方法时条件是否为真.我该如何执行呢?解决方法:您可能使用Callback(),例如:// callbacks can be specified before and after invocation...

C#-抽象类与调用基【代码】

我需要给用户某种程度的功能控制权.因此,我想部分实现用户可以完全实现的类.我想出了这个解决方案.public abstract class A {protected void FunctionA(){// My implementation hereFunctionB();}protected abstract void FunctionB(); }public class B : A {protected override void FunctionB(){// User implementation here} }另一个解决方案是这个public class A {protected virtual void FunctionB(){// My implementation he...

c#-函数内部存在动态调用会阻止静态上下文检查.为什么?【代码】

我有以下代码.使用Visual Studio2013.请注意函数中的动态函数调用class Someclass {public static string[] BuildParametersString(ISomeInterface obj1, ISecondInterface obj2){//.....var dt = obj1.GetDate();//this returns a dynamic type.SomeFunc(dt);//Run time error} private string SomeFunc(DateTime somedate){//......} }运行时错误(在SomeFunc(dt);):非静态字段,方法或属性需要对象引用. 如果我替换以下代码var d...

c#-验证Moq方法调用用作基类/接口时【代码】

我正在尝试验证实现以下接口的Moq上的方法调用,但未匹配调用. 我的单元测试(简体):[Test] public void ShouldDeleteComponent() {var mockDao = new Mock<IComponentDataAccess>();Target.ComponentDao = mockDao.Object;Target.Execute();mockDao.Verify(x => x.Delete(It.IsAny<Component>()), Times.Once); }我的模拟对象的接口:public interface IComponentDataAccess : IDataAccess<Component> {int Delete(Component entit...

c#-使用yield时,在try / catch中包装对迭代器的调用【代码】

我需要在要实现为迭代器(使用yield)的方法中执行一些笨拙的逻辑:public IEnumerable<Things> GetMoreThings() {while (goodStuffHappens()) {Things moreThingsIWant = TemptFateAgain();if (moreThingsIWant.Any())yield return moreThingsIWant;} }在调用方法中,我需要将对GetMoreThings的调用包装在try / catch中,然后yield返回结果:try {foreach (Things thing in Helpful.GetMoreThings())yield return thing; }catch (Exce...

c#是否可以在调用函数后延迟加载函数参数?【代码】

我想知道在C#中是否可以在调用函数后延迟加载函数的参数.实际上,我希望仅在使用函数的输出时才加载函数的参数.我尝试通过以下示例解释我的意思:var a = Enumerable.Range(1, 10);int take = 5;var lazyTake = new Lazy<int>(() => take);// here I still don't iterate on Enumerable, I want the parameter of function Take be initialized later when I start iteratingvar b = a.Take(lazyTake.Value);// here I initialize (...

c#-当未从UI调用函数时,用户为null【代码】

在我的数据库表中,我有一列,在保存到数据库之前对值进行操作.在表的后面插入了很多值之后,在以后的开发阶段就添加了操作逻辑.现在,我想编辑表的内容以操纵现有内容的值. 我的方法 要在表中的所有项目上调用编辑功能,还需要在EDIT操作方法中添加操作逻辑. 当我在遍历数据库中的内容时调用edit函数时,会收到一个null引用异常,当我从UI中使用edit函数时不存在. 编辑动作方法public ActionResult Edit([Bind(Include = "SetValueID,Val...

C#进行异步HTTP调用【代码】

我希望我的网站能够调用URL,仅此而已.我不需要它来等待回复.我的ASP.Net项目以前使用的是webRequest.BeginGetResponse(null,requestState),但最近已停止工作.没有引发任何错误,但我已经确认从未调用过该URL. 当我使用webRequest.GetResponse()时,URL会被调用,但是这种方法不是异步的,我需要这样做. 这是我的代码,有什么错误的主意吗?HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url)); webRequest.Me...