当启动多个线程时,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) 我正在使用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) 我的想法包含两个主要元素:
并且无论何时对控制器或dto进行了更改,打字稿生成的项目都应刷新以在开发过程中保持同步。
我进行了一些研究,发现以下堆栈溢出线程和其他来源:
DTO到TypeScript生成器,建议使用TypeLite库,这似乎很棒,但是根据文档,这要么需要[TsClass]属性,要么需要在启动时引用类。但是,由于我正在使用的项目结构已设置好,因此所有dto都位于* .Dtos命名空间中,因此我有点缺少TypeScript.Definitions()。ForNameSpace()。而且,这仅解决了第一个想法/问题。
Swashbuckly.AspNetCore允许我从控制器和dto两者生成swagger文档,然后任务是以某种方式解释swagger文档并从中创建打字稿类和接口。缺点是,据我所知,这需要我启动服务器,如果可能的话,我希望避免这种情况,因为这将使文件更改难以更新。
仅供参考,这是一个我即将开始的新项目,因此没有要更新的旧代码,而且,所有ASP .NET Core端点都将返回IActionResult以启用Ok(),BadRequest()等的返回。 。因此,在我看来,很难获得回报模型,因为没有一种简单的方法来获取产生的dto(如果有)。
因此,我想到了以下解决两个问题的解决方案:
创建一个单独的使用Swashbuckly库的程序包/应用程序,并在不启动整个服务器的情况下生成模型和控制器。
在每个端点上创建注释,类似于[Produces(SomeDto)],在此之后,我将创建一个小的控制台应用程序,该应用程序使用反射来获取信息并从中生成打字稿。这会导致开发人员必须使这些信息保持同步,因此在我看来,存在一些重复的信息。
但是,这两种解决方案都不会在C#源文件保存时自动更新。
期待任何讨论/建议。
c# ×2
.net ×1
.net-4.5 ×1
asp.net ×1
generics ×1
mockito ×1
scala ×1
typelite ×1
typescript ×1
unit-testing ×1