草庐IT

locator_params

全部标签

c# - 使用 moq 验证对带有 param 参数的函数的调用

我有一个带有LogTrace(stringvalue,paramsobject[]parameters)的ILogger接口(interface)。现在我想验证是否调用了LogTrace并且要记录的字符串包含一些id。问题是它可以被不同地调用。例如。1)LogTrace("MyString"+id)2)LogTrace("MyString{0}",id)等等。Moq有没有好的方法来验证所有的场景?我只能考虑创建一个手工制作的模拟来格式化可用于验证的字符串。 最佳答案 mock.Verify(m=>m.LogTrace(It.IsAn

c# - C# 中的 `params` 是否总是会导致在每次调用时分配一个新数组?

C#/.NET通过按引用传递Array类型来实现可变函数参数(与C/C++不同,C/C++只是将所有值直接放在堆栈上,无论好坏).在C#世界中,这有一个很好的优势,即允许您使用“原始”参数或可重用数组实例调用相同的函数:CultureInfoc=CultureInfo.InvariantCulture;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,3);Int32third=3;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,third);Object[]values=newObjec

c# - C# 中的命名参数和 params 关键字

这个问题在这里已经有了答案:Howtosetnamedargumentforstring.Format?(2个答案)关闭9年前。我有一个C#方法,它带有使用params关键字声明的可变长度参数列表:publicvoidVariableLengthParameterFunction(objectfirstParam,paramsobject[]secondParam)调用方法时有没有使用命名参数的方法?

c# - 错误 APPX3212 : SDK root folder for 'Portable 7.0' cannot be located

我正在尝试使用TeamCity/MSBuild构建我的解决方案。这是一个WebAPI项目,它与移动客户端共享PCL中的一些实体。我看到关于在构建服务器上安装PCL引用库有一些注意事项,我想我已经整理好了(BuildingPortableClassLibraryProjectinbuildserverfails)但是,我在构建可移植类库的过程中遇到如下错误:[11:20:49][Doctrina.Pcl.Entities\Doctrina.Pcl.Entities.csproj]_GetSdkToolPaths[11:20:49][_GetSdkToolPaths]GetSdkPrope

c# - .NET 自定义配置部分 : Configuration. GetSection 引发 'unable to locate assembly' 异常

我已经为一个插件DLL创建了一个自定义配置部分,它将.configXML存储在一个单独的(与主可执行应用程序不同的)文件中。这是自定义部分类的示例:usingSystem;usingSystem.Configuration;namespacePluginFramework.MyConfiguration{publicclassMyConfigurationSettings:ConfigurationSection{privateConfiguration_Config=null;#regionConfigurationProperties//////AcustomXMLsectionf

c# - C#如何选择带歧义和params

假设我有以下方法:publicstaticvoidMyCoolMethod(paramsobject[]allObjects){}publicstaticvoidMyCoolMethod(objectoneAlone,paramsobject[]restOfTheObjects){}如果我这样做:MyCoolMethod("Hi","test");哪个被调用,为什么? 最佳答案 很容易测试-调用第二个方法。至于为什么-C#语言规范有一些关于如何解决不明确的函数声明的非常详细的规则。有很多关于SO周围接口(interface)、继承和

c# - 哪个更适合获取程序集位置,GetAssembly().Location 或 GetExecutingAssembly().Location

请建议哪个最适合获取执行程序集位置。Assembly.GetAssembly(typeof(NUnitTestProject.RGUnitTests)).Location或Assembly.GetExecutingAssembly().Location请建议哪个更好。我也可以使用GetEntryAssembly()吗? 最佳答案 这取决于你想要什么。Assembly.GetAssembly返回声明了type的程序集。Assembly.GetExecutingAssembly返回正在执行当前代码的程序集。Assembly.GetEnt

c# - OutputCache Location=客户端似乎没有工作

我正在尝试在我的MVC应用程序中使用OutputCache属性,但当我使用OutputCacheLocation.Client时它似乎不起作用:publicclassHomeController:Controller{[OutputCache(Duration=15,Location=OutputCacheLocation.Client)]publicActionResultClient(){ViewBag.Message="Thecurrenttimeis"+DateTime.Now.ToString("hh:mm:ss");returnView();}[OutputCache(Du

c# - 在方法覆盖中更改 params 修饰符

我知道params修饰符(将数组类型的一个参数转换为所谓的“参数数组”)不是方法签名的一部分。现在考虑这个例子:classGiraffid{publicvirtualvoidEat(int[]leaves){Console.WriteLine("G");}}classOkapi:Giraffid{publicoverridevoidEat(paramsint[]leaves){Console.WriteLine("O");}}编译时没有警告。然后说:varokapi=newOkapi();okapi.Eat(2,4,6);//willnotcompile!给出错误(方法“Eat”没有重

C# 使用 params 关键字的结果不一致

给定以下方法:staticvoidChangeArray(paramsstring[]array){for(inti=0;i如果我调用它来传递一个字符串数组,这将起作用:string[]array={"Michael","Jordan"}//willbecome{"Michaels","Jordans"}ChangeArray(array);但如果我使用字符串参数调用它,将无法工作:stringMichael="Michael";stringJordan="Jordan";ChangeArray(Michael,Jordan);//ThiswillNOTchangethevalueso