小编Jon*_*sMH的帖子

线程参数被更改

当启动多个线程时,id我正在解析的参数有时是错误的.这是我的创业公司:

for (int i = 0; i < _threadCount; i++)
{
    Thread thread = new Thread(() => WorkerThread(i));
    thread.Start();
    _threads.Add(thread);
}
Run Code Online (Sandbox Code Playgroud)

我的线程功能:

private void WorkerThread(int id)
{
    Console.WriteLine("[{0}] Thread started {1}", DateTime.Now.ToLongTimeString(), id);
}
Run Code Online (Sandbox Code Playgroud)

此代码的输出是:

[19:10:54] Thread start 3
[19:10:54] Thread start 9
[19:10:54] Thread start 4
[19:10:54] Thread start 12
[19:10:54] Thread start 11
[19:10:54] Thread start 3
[19:10:54] Thread start 12
[19:10:54] Thread start 6
[19:10:54] Thread start 9
[19:10:54] Thread start 6
[19:10:54] Thread start …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading .net-4.5

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

在mockito中模拟通用scala方法

我正在使用Mockito作为模拟框架的Scala项目.我想模拟以下通用Scala方法:

def parseXml[T: ClassTag](xmlUrl: URL, xsdUrl: Option[URL]): Option[T] 
Run Code Online (Sandbox Code Playgroud)

在嘲笑我假设我可以使用Mockito的匹配器,如下:

when(xmlFileUnmarshallerMock.parseXml[org.mockito.Matchers.any[AddressBook]](org.mockito.Matchers.any[URL], org.mockito.Matchers.any[Option[URL]]))
    .thenReturn(Some(defaultAddressBook))
Run Code Online (Sandbox Code Playgroud)

但它不会编译,然后我尝试使用[Any]和[AddressBook],但两者都会导致以下错误:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:  Invalid use of argument matchers! 3 matchers expected, 2 recorded.
Run Code Online (Sandbox Code Playgroud)

generics unit-testing scala mockito

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

ASP .Net Core Dto和控制器到打字稿类和接口

我的想法包含两个主要元素:

  1. 使用C#Dto(数据传输对象)并将其转换为TypeScript接口,以确保客户端模型与服务器端同步。
  2. 使用ASP .Net核心控制器端点,并将其转换为使用http服务或类似服务的Typescript类。同样,以确保客户端请求与服务器同步。

并且无论何时对控制器或dto进行了更改,打字稿生成的项目都应刷新以在开发过程中保持同步。

我进行了一些研究,发现以下堆栈溢出线程和其他来源:

  • DTO到TypeScript生成器,建议使用TypeLite库,这似乎很棒,但是根据文档,这要么需要[TsClass]属性,要么需要在启动时引用类。但是,由于我正在使用的项目结构已设置好,因此所有dto都位于* .Dtos命名空间中,因此我有点缺少TypeScript.Definitions()。ForNameSpace()。而且,这仅解决了第一个想法/问题。

  • Swashbuckly.AspNetCore允许我从控制器和dto两者生成swagger文档,然后任务是以某种方式解释swagger文档并从中创建打字稿类和接口。缺点是,据我所知,这需要我启动服务器,如果可能的话,我希望避免这种情况,因为这将使文件更改难以更新。

仅供参考,这是一个我即将开始的新项目,因此没有要更新的旧代码,而且,所有ASP .NET Core端点都将返回IActionResult以启用Ok(),BadRequest()等的返回。 。因此,在我看来,很难获得回报模型,因为没有一种简单的方法来获取产生的dto(如果有)。

因此,我想到了以下解决两个问题的解决方案:

  1. 创建一个单独的使用Swashbuckly库的程序包/应用程序,并在不启动整个服务器的情况下生成模型和控制器。

  2. 在每个端点上创建注释,类似于[Produces(SomeDto)],在此之后,我将创建一个小的控制台应用程序,该应用程序使用反射来获取信息并从中生成打字稿。这会导致开发人员必须使这些信息保持同步,因此在我看来,存在一些重复的信息。

但是,这两种解决方案都不会在C#源文件保存时自动更新。

期待任何讨论/建议。

c# asp.net typescript typelite

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