小编Joh*_*nny的帖子

如何订购List <string>?

我有这个List<string>:

IList<string> ListaServizi = new List<string>();
Run Code Online (Sandbox Code Playgroud)

如何按字母顺序和升序订购?

c# string list

111
推荐指数
5
解决办法
16万
查看次数

如何在文本框中显示发布版本?

目前textbox我每次发布时都会在应用程序中手动更新版本字段().我想知道是否有办法让我的应用程序从某个地方获取数据并将其显示在框中供我使用.我正在使用VS2012,我只是不确定如何在C#中实现这一点.下面是我正在讨论的VS2012属性窗口的屏幕截图.

从VS2012发布图像

新图片:

在此输入图像描述

c#

31
推荐指数
3
解决办法
4万
查看次数

为什么我的Moq声称没有抛出调用,但它在异常中显示抛出的调用?

我有以下单元测试:

[TestMethod]
public void Execute_Sends_Email_To_User()
{
    // Setup
    InitializeTestEntities();
    _mock.Setup(x => x.Send(It.Is<string>(y => y == _user.Email), 
        It.IsAny<string>(), It.IsAny<string>()));

    // Act
    new ResetUserPasswordCommand(_unitOfWork, 
        _mock.Object).WithUserId(_user.Id).Execute();

    // Verify
    _mock.Verify(x => x.Send("", "", ""), Times.Once());
}
Run Code Online (Sandbox Code Playgroud)

运行时,我收到以下异常消息

Test method 
MyApp.Tests.Commands.Users.ResetUserPasswordCommandTests.Execute_Sends_Email_To_User 
threw exception: 

Moq.MockException: 
Expected invocation on the mock once, but was 0 times: x => x.Send("", "", "")

Configured setups:
x => x.Send(It.Is<String>(y => y == ._user.Email), It.IsAny<String>(), 
    It.IsAny<String>()), Times.Once

Performed invocations:
IEmailUtils.Send("test@email.com", "Password Recovery", 
    "Your new password is: 7Xb79Vb9Dt")
Run Code Online (Sandbox Code Playgroud)

我对此感到困惑,因为它说模拟被调用了0次,但它显示了成功的调用.我究竟做错了什么?

c# unit-testing moq

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

如何在异步方法中使用 Span&lt;byte&gt;?

我正在尝试使用以下代码确定异步方法中有效的 base64 字符串:

public static async Task<bool> IsBase64String(string base64)
{
    Span<byte> buffer = new Span<byte>(new byte[base64.Length]);
    return await Task.FromResult(Convert.TryFromBase64String(base64, buffer, out int bytesParsed));
}
Run Code Online (Sandbox Code Playgroud)

但是 Span 不能在异步方法中声明,请帮忙吗?

c#

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

处置托管资源时的堆栈溢出

我有一个Unity IoC容器的简单包装器(临时使用Service Locator [anti-] Pattern将DI引入遗留代码库),并且由于IUnityContainer在Unity实现中IDisposable我也希望通过包装器公开它.

包装器很简单:

public class IoCContainer : IIoCContainer
{
    private IUnityContainer _container;

    public IoCContainer(IUnityContainer container)
    {
        _container = container;
    }

    public T Resolve<T>()
    {
        return _container.Resolve<T>();
    }

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    ~IoCContainer()
    {
        Dispose(false);
    }

    protected virtual void Dispose(bool disposing)
    {
        if (disposing)
            if (_container != null)
            {
                _container.Dispose();
                _container = null;
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

IIoCContainer是域接口,除了T Resolve<T>()它之外什么也没有,当然IDisposable.因此,在一种方法下面的所有内容都只是IDisposable 我在MSDN上找到它的实现.

但是,当.Dispose()在此对象上调用时(例如退出using块时), …

.net c# stack-overflow idisposable unity-container

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

.NET Framework 中是否使用了责任链?

我正在尝试更多地了解责任链设计模式。我在网上看到的每个示例都给出了最简单的示例,即一个 Logger,它根据处理请求的处理程序将不同的消息写入控制台。

.NET 框架中是否有任何现实生活中的例子?我查看了以下链接:

  1. .NET Framework 中使用了哪些设计模式?
  2. http://www.dofactory.com/net/chain-of-responsibility-design-pattern

  3. https://sourcemaking.com/design_patterns/chain_of_responsibility

c# design-patterns

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

当ContinueWith与System.Threading.Tasks.Task一起使用时,单元测试失败

我正在尝试为我的代码添加单元测试,我在TaskTPL中使用它来将值更新到数据库中.对于单元测试,我正在使用NUnitMoq.以下是我项目中的一些代码片段.

*//service*
public interface IServiceFacade{
   Task SynchronizeDataset (string datasetName);
}

*//The method call I want to test*
_ServiceFacade.SynchronizeDataset(DATASET_NAME);

*//In my test, I want to verify if this method is called*
mock_IServicesFacade.Setup(sf => sf.SynchronizeDataset(It.IsAny<string>())).Returns(It.IsAny<Task>());
presenter.InitializeView();
mock_IServicesFacade.Verify(sf => sf.SynchronizeDataset(NSUserUtilStrings.DATASET_ACHIEVEMENT), Times.Once());
Run Code Online (Sandbox Code Playgroud)

这很有效.但是当我添加这样ContinueWith的服务方法调用时...

_ServiceFacade.SynchronizeDataset(DATASET_NAME).ContinueWith(t =>
{
    if (t.IsFaulted)
    {
        //do something
    }
});
Run Code Online (Sandbox Code Playgroud)

此测试代码无法正常工作.测试失败并显示此错误...

System.NullReferenceException:未将对象引用设置为对象的实例

堆栈跟踪:

DevicePategoryPresenterTest.cs中的atPresenters.UnitTests.DeviceCategoryPresenterTest.InitializeView_Called()[0x00241]:56(托管管理到本机)System.Reflection.MonoMethod:InternalInvoke(System.Reflection.MonoMethod,object,object [],System.Exception& )在System.Reflection.MonoMethod.Invoke(System.Object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object [] parameters,System.Globalization.CultureInfo culture)[0x00038] in/private/TMP /源 - 单 - 4.8.0/bockbuild - 单4.8.0分支/简档/单MAC-xamarin /建立根/单声道86/MCS /类/ corlib …

c# nunit unit-testing moq task-parallel-library

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

如何使用 Windows Scheduler 在启动时自动运行 jupyter 笔记本(使用 Anaconda)

我有一个笔记本,可以自动查询数据库,然后每小时将结果推送到谷歌表格,但需要不断在计算机上运行才能工作。如何在计算机启动时自动运行 Jupiter 笔记本(我经常重新启动)谢谢!

python-3.x jupyter-notebook

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

Newtonsoft JSON在合并和/或序列化时删除null属性

请考虑以下情形:

var s1 = "{\"hello\":\"world\", \"test\":\"somevalue\"}";
var s2 = "{\"hello\":\"world\", \"test\":null}";

var j1 = JObject.Parse(s1);
var j2 = JObject.Parse(s2);

j1.Merge(j2, new JsonMergeSettings { MergeArrayHandling = MergeArrayHandling.Union, MergeNullValueHandling = MergeNullValueHandling.Merge });

var jf = JsonConvert.SerializeObject(j1, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
Run Code Online (Sandbox Code Playgroud)

结果jf{"hello":"world", "test":null}

我如何调用库以获得合并的结果: {"hello":"world"}

这是一个我必须递归遍历结果对象并手动删除空值属性的情况吗?或者是否有一些魔术棒说"在序列化时只丢弃这些空值"

我知道JsonProperty -> NullValueHandling,但这些是我正在使用的动态对象,所以模型是未知的.

c# json json.net

5
推荐指数
0
解决办法
924
查看次数

为什么这段反转整数的代码会打印“inf”?

我正在编写一个程序来使用 Python 打印整数的反转。我希望 的输出345543(即345相反),但相反,我得到了inf

这是我的代码:

def intreverse(n):
    r = 0

    while n != 0:
        d = n % 10
        r = r * 10 + d
        n = n / 10

    print(r)

intreverse(345)
Run Code Online (Sandbox Code Playgroud)

我做错了什么,我该如何解决?

python

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