小编Ash*_*Ash的帖子

获取"项目"nuget配置是无效错误

我得到"[project] nuget配置无效"错误.之前我收到了这样的错误,并使用了此处提到的"更新Nuget包管理器"解决方案:

无法在Visual Studio 2015中安装任何程序包

我也尝试过该链接中提到的其他解决方案无济于事.

  • 重新启动Visual Studio
  • 删除nuget.config
  • 删除packages.config
  • 更新nuGet包管理器.

此外,我能够在解决方案级别和此解决方案中的其他项目中查看nuGet包.

而且,如果我转到软件包管理器控制台(工具 - > NuGet软件包管理器 - >软件包管理器控制台),我在项目下拉列表中看不到有这个问题的项目,但我看到解决方案中的其他项目.

visual-studio nuget visual-studio-2015

260
推荐指数
2
解决办法
9万
查看次数

Multiple Moq It.Is <string>()匹配参数

使用Moq,拥有多个匹配参数是否有效?

It.Is<string>() 
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我希望mockMembershipService根据用户提供的内容返回不同的ProviderUserKey.

mockMembershipService.Setup(
    x => x.GetUser(
      It.Is<string>(
        s => s.Contains("Joe")))
   .ProviderUserKey)
.Returns("1234abcd");


mockMembershipService.Setup(
  x => x.GetUser(
    It.Is<string>(
      s => s.Contains("Tracy")))
  .ProviderUserKey)
.Returns("5678efgh");
Run Code Online (Sandbox Code Playgroud)

SetUp默认为第二个语句,而不是根据它自己的优点来评估每个语句.

c# unit-testing moq mocking

67
推荐指数
4
解决办法
7万
查看次数

为什么 Resharper 在这里给我一个“Localizable Interpolated String”提示?

我正在将 VS 2015 与 Resharper Ultimate 一起用于 Win Forms 应用程序,并且当我看到字符串下方的蓝色波浪线时,我正在做一些简单的事情,例如设置按钮的文本属性。

单击它会将语句转换为我在有问题的语句下方重新键入的语句,并且没有蓝色波浪线。请注意,它有逐字和插值运算符。

此外,仅通过插值将相同的字符串设置为另一个字符串似乎工作正常。此字符串中没有要转义的字符。这里发生了什么事?

在此处输入图片说明

c# resharper visual-studio c#-6.0 visual-studio-2015

6
推荐指数
1
解决办法
2351
查看次数

为现有的Web服务构建c#代理以进行cookie处理

我有一个第三方工具(T),我需要通过它来使用Web服务.问题是服务要求客户​​端能够处理cookie而T不能.

该服务要求您调用Login方法设置一个cookie,该cookie需要在将来的调用中使用.

所以,我做了一个临时Web服务,它处理cookie并返回一个SessionId,它是一个Guid to T,T可以用于后续调用.

我正在使用持久字典

private Dictionary<Guid, CookieContainer> _cookieJar 
Run Code Online (Sandbox Code Playgroud)

使用ServiceBehavior像装饰服务类这样的属性来持久化:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class ServiceClass: IServiceClass
Run Code Online (Sandbox Code Playgroud)

在调用Login时存储cookie并返回sessionId.当T使用sessionId进行后续调用时,我使用附加到它的字典中的相应CookieContainer转发这些请求:

request.CookieContainer = _cookieJar[new Guid(sessionId)];
Run Code Online (Sandbox Code Playgroud)

request 是一个 HttpWebRequest

就像有一个Login方法一样,有一个Logout方法可以有效地使cookie过期,我使用这个调用从字典中删除记录.对于未进行Logout调用的情况,我可能会节省创建Cookie的时间,因此我可以在添加新Cookie时检查并删除字典中的旧Cookie容器.

有没有更好的方法或推荐的方法来制作这样的代理?

c# cookies wcf soap web-services

6
推荐指数
0
解决办法
407
查看次数

C# - 验证模拟 (MoQ) 属性的方法是使用字符串的一部分作为参数调用的

我正在使用 MoQ 和 C# 来模拟公共属性,我想知道是否使用以特定字符集开头的任何字符串调用了模拟方法之一。

例如,虽然我知道这有效:

mockLogger.Verify(x => x.Information($"Entering {methodName}"), Times.Once);
Run Code Online (Sandbox Code Playgroud)

我正在尝试通过以下尝试来查看是否使用以开头的参数调用mockLoggerInformation()方法$"Exception in {methodName} - Error Message: {ex.Message} - StackTrace:"

mockLogger.Verify(x => x.Information($"Exception in {methodName}: " +
                                         $"Error Message: {exceptionMessage} - " +
                                         $"StackTrace: ........"), Times.Once);
Run Code Online (Sandbox Code Playgroud)

这不可能吗?或者是否有某种解决方法?

编辑:

我什至试过

    mockLogger.Verify(x => x.Information($"Exception in {methodName}: " +
                                         $"Error Message: {exceptionMessage} - " +
                                         $"StackTrace: " + It.IsAny<string>()), 
                                         Times.Once);
Run Code Online (Sandbox Code Playgroud)

但它似乎也不起作用。

c# unit-testing moq mocking

5
推荐指数
1
解决办法
2490
查看次数

C#三元运算符无法正常工作

我有一个类的Moq模拟,我需要验证是否调用了某个方法.根据变量的类型,我需要检查方法是一次调用还是从不调用.

所以,这有效:

if (exception is ValidationException)
    mockRequestHandler.Verify(x => x.HandleException(exception), 
    Times.Once);
else
    mockRequestHandler.Verify(x => x.HandleException(exception), 
    Times.Never);
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用三元运算符,如下所示,但它似乎不起作用:

mockRequestHandler.Verify(x => x.HandleException(exception),
    (exception is ValidationException) ? Times.Once: Times.Never);
Run Code Online (Sandbox Code Playgroud)

我得到以下编译时错误:

无法确定条件表达式的类型,因为"方法组"和"方法组"之间没有隐式转换.

有什么简单的我可以忽略或三元运算符不能以这种方式使用吗?

c# moq ternary-operator

2
推荐指数
1
解决办法
288
查看次数