草庐IT

c# - 重用 WCF 服务客户端

我有一个WCF网络服务充当我的ASP.NET网页的数据提供者。在整个网页中,通过自动生成的ServiceClient对Web服务进行了多次调用。目前,我创建了一个新的ServiceClient并为每个请求打开它,即获取用户、获取角色、获取客户列表等......其中每一个都会创建一个新的ServiceClient并打开一个新的连接。我能否将我的ServiceClient类设为全局或静态可用类,以便我的ASP.NET网页中的所有函数都可以使用相同的客户端。这似乎更有效率。这样做有什么问题吗?执行此操作时我应该考虑什么建议?如果我向客户发出多个请求会怎样?大概它都是同步的,所以我调用1次还是

c# - 将事件转换为任务的可重用模式

我想为wrappingEAPpatternastask准备一段通用的可重用代码,类似于Task.Factory.FromAsync的东西为BeginXXX/EndXXXAPMpattern做.例如:privateasyncvoidForm1_Load(objectsender,EventArgse){awaitTaskExt.FromEvent(handler=>this.webBrowser.DocumentCompleted+=newWebBrowserDocumentCompletedEventHandler(handler),()=>this.webBrowser.Naviga

c# - C#中的重用抽象原则

在我们的C#MVC应用程序中,我们有很多接口(interface)与实现它们的对象一对一映射。即:基本上,对于创建的每个对象,都执行了“提取接口(interface)”操作。Moq使用这些接口(interface)为我们的单元测试生成模拟对象。但那是唯一一次重新使用接口(interface)。我们系统中没有具体对象实现多个接口(interface)。谁能告诉我这是否会在以后造成问题?如果是这样,它们会是什么?我在想,我们的应用程序有很多重复,例如在这两个接口(interface)中(编辑:在我们的服务层中)唯一不同的是方法名称和它们采用的参数类型,但是从语义上讲,他们对发送消息的存储库

c# - 在 Select 和 Where 调用中重用 Linq to Entities 的 Expression<Func<T, TResult>

假设我有一个实体对象定义为publicpartialclassArticle{publicId{get;set;}publicText{get;set;}publicUserId{get;set;}}根据文章的某些属性,我需要确定给定用户是否可以删除该文章。所以我添加了一个静态方法来进行检查。像这样的东西:publicpartialclassArticle{publicstaticExpression>CanBeDeletedBy(intuserId){//Addlogictobereusedherereturna=>a.UserId==userId;}}现在我可以做using(MyE

c# - 多次执行相同的 SQL 查询时重用 SqlCommand 是否更好?

当使用相同的查询但不同的参数查询数据库时,是否更好:一次性完成,还是创建两个单独的查询?单次使用示例:using(SqlCommandaddProduct=newSqlCommand(@"insertinto[Products].[Products]([Name],[Price])values(@name,@price)",sqlConnection)){//Insertthefirstproduct.addProduct.Parameters.AddWithValue("@name","Product1");addProduct.Parameters.AddWithValue("@p

c# - csproj 文件中的可重用 PropertyGroup 元素

我需要在大约15个项目中设置一系列属性。有没有办法将这些属性放在一个文件中,并让所有项目文件使用某种导入指令引用一个文件,而不是在每个项目文件中复制属性?编辑:为了澄清,我说的是csproj文件中的元素。所有项目都需要同一系列的设置。这些元素设置类似DebugSymbols的属性或DefineDebug,并且不用于引用源文件。 最佳答案 元素可用于此,类似于自定义目标文件的使用方式。可重用文件应如下所示:请注意,拥有根Project元素与xmlns声明是必需的-如果没有它,VS将不会加载引用此文件的项目。我已将我的属性设置保存在我的

c# - 我应该在不同的 View 中重用 View 模型吗?

我注意到我的View需要与其他人相同的信息。但有时你需要View模型的5个属性,有时只需要2个。您是否在多个View中共享这样的View模型,或者您是否为每个View创建一个单独的View模型,或者您是否更喜欢继承或组合策略?对我来说共享View模型有一些缺点:最小意外原则:只填充一个View模型的5个属性中的2个属性并得到空引用异常是很奇怪的,因为您不想查询数据库的额外数据。当View模型有5个属性时,我希望所有属性都被填充。异常(exception)证明了规则。关注点分离/单一职责原则:View模型在复杂站点上杂乱无章,因为您必须满足每个View的不同需求。如果涉及逻辑,它也会变得

c# - SpecFlow 可重用步骤定义

有没有办法让SpecFlow重用步骤定义?在其他工具中,我使用了GivenWhenThen基类,其中包含如下方法WhenAnOrderIsCreated--这会初始化一个protected订单成员,供继承类使用。似乎无法与SpecFlow一起使用(似乎不喜欢继承)有没有办法跨功能共享步骤?非常感谢 最佳答案 为什么是的,这是可能的-从步骤功能(https://specflow.org/documentation/Calling-Steps-from-Step-Definitions/)检查调用步骤简而言之,您创建了一个继承自Step

c# - 如何在 .NET 中重用套接字?

我正在尝试重新连接到已断开连接的套接字,但出于某种原因它不允许这样做,即使我调用了Disconnect方法并将参数“reuseSocket”设置为true。_socket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);_socket.Connect(ipAddress,port);//...receivedata_socket.Disconnect(true);//reuseSocket=true//...wait_socket.Connect(ipAddress,port);//thr

c# - 为什么重用 DataContext 会对性能产生负面影响?

经过fairamountofresearch还有一些errors,我修改了我的代码,以便在每次查询数据库或插入数据时创建一个新的DataContext。并且频繁查询数据库-对于处理的25万笔交易中的每笔交易,在插入交易之前查询数据库以获得客户ID、部门ID和类别。所以现在我正在尝试优化代码,因为它每秒只处理大约15笔交易。我删除了一些无关的查询并添加了一些索引并将其提高到每秒30个。然后我想即使每个人都说DataContext是轻量级的,但每次事务创建一个新的4次还是要花一些钱,所以我尝试重用DataContext。令我惊讶的是,重用上下文会导致性能下降到每秒10个事务!为什么会这样?