草庐IT

c# - 在实现具有同步和异步 API 的库以实现相同功能时使用 async await

关于如何在库中提供相同功能的同步和异步实现,我有几个问题。我会先问他们,然后提供下面的示例代码(实际上很多,但实际上很简单)。有没有办法避免违反DRY原则?考虑JsonStreamReader.Read的实现,JsonStreamWriter.Write,JsonStreamWriter.Flush,ProtocolMessenger.Send,ProtocolMessenger.Receive及其异步版本。在对同一方法的同步和异步版本进行单元测试时,是否有一种方法可以避免违反DRY原则?我正在使用NUnit,尽管我想所有框架在这方面应该都是一样的。应该如何实现返回Task的方法或Ta

c# - 如何使用 AfterMap 将属性映射到集合属性

我有两个实体和两个DTO。我正在将实体映射到DTO。DTO的简化版本如下所示:publicclassFooDto{//Otherpropertiesremovedforclarity.publicstringDescription{get;set;}publicdecimalTotal{get;set;}publicICollectionBars{get;set;}}publicclassBarDto{//Otherpropertiesremovedforclarity.publicdecimalTotal{get;set;}}Foo和Bar类是:publicclassFoo{publ

c# - 415 不支持的媒体类型 asp.net core

详情我正在尝试将文件从Postman发送到我创建的端点。但它给了我这个错误。我没有在postman中传递headerContent-Type415UnsupportedMediaType应用程序接口(interface)[Consumes("multipart/form-data")][HttpPost]publicasyncTaskSendEmail([FromBody]Entityentity){try{returnOK();}catch(Exceptione){throwe;}}类publicclassEntity{publicListFiles{get;set;}}

c# - 通过引用?

我仍然对通过ref感​​到困惑。如果我有一个Cache对象,我希望它被多个对象访问/可用,我使用构造函数注入(inject)来注入(inject)它。我希望它影响我创建的单个缓存对象。例如。publicclassCache{publicvoidRemove(stringfileToRemove){...}}publicclassObjectLoader{privateCache_Cache;publicObjectLoader(Cachecache){}publicRemoveFromCacheFIleThatHasBeenDeletedOrSimilarOperation(strin

c# - 检测是否在 C# 中按下了任何键(不是 A、B,而是任何键)

[编辑3]我通过使用“奇怪”版本有点“解决了它”。至少对于最重要的键。这对我来说已经足够了,我想检查ALT和ALT+A是否相同(从而确保A未被按下)。不完美,但已经花了很多时间来解决这么小的问题。无论如何感谢所有的答案......[编辑3][EDIT4]多亏了280Z28[/EDIT4]解决得更干净了我知道如何检查修改键以及如何测试单个键。问题是,我想检查是否按下了任何键。以下方法似乎“奇怪”:-)用C#编写的WPF应用程序if(Keyboard.IsKeyDown(Key.A))returntrue;if(Keyboard.IsKeyDown(Key.B))returntrue;if

c# - 如何交叉引用类中的对象

我有一个Person类和两个名为Parent和Child的继承类。一个Parent可以有n个Child(s),一个Child可以有n个Parent(s)。在OOD中创建父子之间引用的最佳方式是什么。我应该在引用连接的父/子的每个类中创建一个列表还是有更好的方法? 最佳答案 好问题。纯粹的多对多关系实际上很少见,引入一个中间对象通常有助于对关系本身建模。如果(何时!)出现需要捕获有关关系属性的用例(例如,子女/parent关系是自然的、代孕的、收养的等),这将证明是无价的。因此,除了您已经确定的Person、Parent和Child实

c# - 如何在 View 模型中执行列表? + 数据注释

我正在使用asp.netmvc3、数据注释和自动映射器。一旦属性通过验证,我想在我的View模型中对属性进行所有注释,我使用自动映射器将其映射回我的域对象。我有一个View模型,它具有我想要收集的属性,因为我想从它们生成一个表。我还想稍后使用它们作为向该表添加行的表单。那我该怎么办?我如何获取这些属性并收集它们?publicclassUserViewModel(){[Required()]publicstringUserName={get;set;}[Required()]publicstringFirstName={get;set;}[Required()]publicstringL

c# - Entity Framework 给出异常 : "The underlying provider failed on Open."

我有一个测试。发生的情况是,无论何时首先执行test1,test2都会失败并显示消息:"System.Data.EntityException:System.Data.EntityException:theunderlyingproviderfailedonopen.cannotopendatabase"DBEntities"requestedbythelogin.Theloginfailed.".只要先执行test2,test1就会失败并显示相同的消息。过去3天我一直在处理这个问题。[TestClass]classMyTestClass{DBEntitiesdb;[TestIniti

c# - 在 C# 中实现全局常量的最佳方法是什么?

我有一个Common项目,我在其中添加了QueryStringNames的公共(public)常量。我知道通常常量应该是内部常量或私有(private)常量,但我在这里需要公共(public)常量,因为我想允许全局访问查询字符串名称、sessionkey等。我知道有3种解决方案,但它们都有一个重要问题。调用方程序集将包含我的常量的副本,这意味着如果我必须更改常量值,我将必须编译我的通用程序集和调用方程序集!1)publicconststringConstName="avalue";2)publicreadonlystringConstName="avalue";3)Tobestored

c# - JSON 反序列化为构造的 protected setter 数组

我使用NewtonsoftJSON序列化/反序列化我的对象。其中之一包含一个带有protectedsetter的数组,因为构造函数会自行构建数组,并且只有成员会被操作。这可以毫无问题地序列化,但是当涉及到反序列化时,它会被忽略,因为它不是公共(public)的。我尝试了一个自定义转换器,它也没有被调用,因为它不是公开的。这是一个最小化的例子:publicstaticclassTestCoordsDeserialization{privateclassCoords{publicDoubleX{get;set;}publicDoubleY{get;set;}publicDoubleZ{ge