我得到"[project] nuget配置无效"错误.之前我收到了这样的错误,并使用了此处提到的"更新Nuget包管理器"解决方案:
我也尝试过该链接中提到的其他解决方案无济于事.
此外,我能够在解决方案级别和此解决方案中的其他项目中查看nuGet包.
而且,如果我转到软件包管理器控制台(工具 - > NuGet软件包管理器 - >软件包管理器控制台),我在项目下拉列表中看不到有这个问题的项目,但我看到解决方案中的其他项目.
使用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默认为第二个语句,而不是根据它自己的优点来评估每个语句.
我正在将 VS 2015 与 Resharper Ultimate 一起用于 Win Forms 应用程序,并且当我看到字符串下方的蓝色波浪线时,我正在做一些简单的事情,例如设置按钮的文本属性。
单击它会将语句转换为我在有问题的语句下方重新键入的语句,并且没有蓝色波浪线。请注意,它有逐字和插值运算符。
此外,仅通过插值将相同的字符串设置为另一个字符串似乎工作正常。此字符串中没有要转义的字符。这里发生了什么事?
我有一个第三方工具(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容器.
有没有更好的方法或推荐的方法来制作这样的代理?
我正在使用 MoQ 和 C# 来模拟公共属性,我想知道是否使用以特定字符集开头的任何字符串调用了模拟方法之一。
例如,虽然我知道这有效:
mockLogger.Verify(x => x.Information($"Entering {methodName}"), Times.Once);
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过以下尝试来查看是否使用以开头的参数调用mockLogger
的Information()
方法$"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)
但它似乎也不起作用。
我有一个类的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)
我得到以下编译时错误:
无法确定条件表达式的类型,因为"方法组"和"方法组"之间没有隐式转换.
有什么简单的我可以忽略或三元运算符不能以这种方式使用吗?