小编She*_*vek的帖子

Shim a void方法

我有以下(遗留的,继承自前辈)VB.Net(框架2.0)创建系统事件日志异常的类和方法:

Public Interface IMyClass

    Function MyMethod(ByVal aValue As String) As Date

End Interface

Public Class MyClass

    Implements IMyClass

    Public Function MyMethod(ByVal aValue As String) As Date Implements IMyClass.MyMethod

        Try

            ' Calculate return date based on aValue

        Catch ex As Exception
            Call MyUtilityClass.LogError("MyClass", "MyMethod", ex)
            Throw
        End Try

    End Function

End Class

Partial Public NotInheritable Class MyUtilityClass

    Public Shared Sub LogError(ByVal className As String,
                               ByVal methodName As String,
                               ByVal ex As Exception)

        ' Write details to Event Log
    End Sub

End …
Run Code Online (Sandbox Code Playgroud)

c# vb.net shim void microsoft-fakes

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

VB.Net - AssemblyFileVersion和AssemblyFileVersionAttribute与AssemblyVersion和AssemblyVersionAttribute有什么区别

我继承了一个VB.Net代码库,它是VB 2005并升级到VB 2008,包含大约100个项目

我正在尝试重新版本所有组件,但发现一些AssemblyInfo.vb文件有一个AssemblyFileVersion条目,有些有一个AssemblyFileVersionAttribute条目.

此外,有些人有一个AssemblyVersion条目,有些人有一个AssemblyVersionAttribute条目.

有没有Attribute什么区别?

我应该使用哪些?

vb.net versioning assemblyinfo assemblyversionattribute assemblyfileversion

4
推荐指数
1
解决办法
1207
查看次数

C#Null与LINQ合并

我有2个类,看起来像这样:

class Widget
{
    string Selected { get; set; }

    List<Option> Options { get; set; }
}

class Option
{
    string InternalCode { get; set; }

    string ExternalCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Options每个客户端使用不同的数据动态填充,以显示ExternalCode为选项

Selected得到填充ExternalCode.

然后我需要访问InternalCode哪些匹配.

目前我这样做:

var option = widget.Options.SingleOrDefault(o => o.ExternalCode == widget.Selected);

var internalCode = option == null ? string.Empty : option.InternalCode;
Run Code Online (Sandbox Code Playgroud)

这是否可以使用Null Coalesce使用单行?

c# linq null-coalescing

4
推荐指数
2
解决办法
8271
查看次数

AngularJs 和 ASP.NET MVC 5 - ng-model 覆盖 SELECT 选定的选项

继我之前的问题之后:

AngularJs 和 ASP.NET MVC 5 - ng-model 覆盖文本框值

我现在在选择时遇到同样的问题。

我有一个使用 ASP.NET MVC 5 构建的表单,用于使用@Html.EnumDropDownListFor我的模型填充表单(例如,在表单导航或服务器端验证失败后)。

我现在引入了使用 Angular (1.4.7) 的客户端函数,这意味着 SELECT 现在经过修饰,ng-model以使 Angular 函数能够使用所选值。

例如:

@Html.EnumDropDownListFor(m => m.MyEnum, 
                          new { @class="form-control", ng_model="obj.myEnum" })
Run Code Online (Sandbox Code Playgroud)

ng-model重新加载页面时,添加now 会覆盖 MVC 模型中选定的选项集。

在浏览器中查看源代码表明所选选项已从 MVC 模型中正确设置,但有一个额外的选项被选中:

<select class="form-control ng-pristine ng-valid ng-touched" 
        name="MyEnum" ng-model="obj.myEnum">
    <option value="? undefined:undefined ?"></option>
    <option value="0">Please select</option>
    <option selected="selected" value="1">Option1</option>
    <option value="2">Option2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我怎样才能防止这种情况,以便Option1保持选中状态?

使用我上一个问题中的指令不起作用,因为 SELECT 没有 value 属性。

也不ng_init适用于 SELECT

c# asp.net asp.net-mvc angularjs asp.net-mvc-5

3
推荐指数
1
解决办法
1592
查看次数

无法测试使用 NSubstitute 接收的 ILogger&lt;T&gt;

我有一个 .Net Core 3 应用程序,正在尝试在我的方法中测试对 ILogger 的调用:

public class MyClass
{
    private readonly ILogger<MyClass> _logger;

    public MyClass(ILogger<MyClass> logger)
    {
        _logger = logger;
    }

    public void MyMethod(string message)
    {
        _logger.LogError(message);
    }
}
Run Code Online (Sandbox Code Playgroud)

在 SO 和博客上找到答案后,我知道我必须针对接口方法进行测试,而不是针对扩展方法进行测试,因此我进行了以下测试:

[TestMethod]
public void MyMethodTest()
{
    // Arrange
    var logger = Substitute.For<ILogger<MyClass>>();

    var myClass = new MyClass(logger);

    var message = "a message";

    // Act
    myClass.MyMethod(message);

    // Assert
    logger.Received(1).Log(
        LogLevel.Error,
        Arg.Any<EventId>(),
        Arg.Is<object>(o => o.ToString() == message),
        null,
        Arg.Any<Func<object, Exception, string>>());
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,我收到此错误:

Test method MyLibrary.Tests.MyClassTests.MyMethodTest threw exception: 
NSubstitute.Exceptions.ReceivedCallsException: …
Run Code Online (Sandbox Code Playgroud)

unit-testing mstest nsubstitute .net-core ilogger

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

SQL - 2在一个查询中计数

我有2个查询,它们返回表中不同信息的计数:

SELECT Date, COUNT(*) AS Total 
FROM Table
WHERE Type = 7 AND Date >= '2010-01-01' 
GROUP BY Date 
HAVING COUNT(*) > 5000  
ORDER BY Date
Run Code Online (Sandbox Code Playgroud)

返回所有"忙"日期的总计:

Date       Total
---------- -----------
2010-01-05 9466
2010-02-02 8747
2010-03-02 9010
2010-04-06 7916
2010-05-05 9342
2010-06-02 8723
2010-07-02 7829
2010-08-03 8411
2010-09-02 7687
2010-10-04 7706
2010-11-02 8567
2010-12-02 7645
Run Code Online (Sandbox Code Playgroud)

SELECT Date, COUNT(*) AS Failures
FROM Table
WHERE Type = 7 AND ErrorCode = -2 AND Date >= '2010-01-01' 
GROUP BY Date 
ORDER BY …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server group-by count

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