标签 .NET技术 文章列表
104 浏览
喜欢(2)

C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案

前言在上一篇文章《在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务)》的最后,我给大家抛出了一个遗留的问题—在将TopshelfDemoService程序作为Windows服务安装的情况下,由它守护并启动的客户端程序是没有UI界面的。到这里,我们得分析为什么会出现这个问题,为什么在桌面应用程序模式下可以显示UI界面,而在服务模式下没有UI界面?分析问题(Session 0 隔离)通过查阅资料,这是由于S...

C#开发 2019-04-11 10:51 0评论 0收藏
82 浏览
喜欢(2)

在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务)

前言在上一篇文章《C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载》中,我们了解发C#/.NET创建基于Topshelf Windows服务程序的大致流程,参数配置以及服务的安装和卸载。同时,我们也使用一个简单的定时任务演示了Topshelf服务的执行情况。今天我将继续为大家分享关于Topshelf主题的技术文章。本文主要演示在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务...

C#开发 2019-04-10 16:25 0评论 0收藏
204 浏览
喜欢(5)

C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载(极速,简洁)

文章目录C#/.NET基于Topshelf创建Windows服务的系列文章目录:C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载 (1)在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务) (2)C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案 (3)前言对于使用Windows操作系统的人来说,W...

C#开发 2019-04-09 17:39 1评论 0收藏
AD 友情赞助
78 浏览
喜欢(1)

.NET/C#应用程序开发Dapper ORM中使用工作单元(Unit Of Work)完成事务操作

本文分享一种在.NET/C#应用程序开发Dapper ORM中使用工作单元(Unit Of Work)完成事务操作的方式,封装如下:public sealed class DalSession : IDisposable{ public DalSession() { _connection = new OleDbConnection(DalCommon.ConnectionString); _co...

.NET 2019-03-20 17:57 0评论 0收藏
54 浏览
喜欢(0)

[.NET/C#].NET/C#应用程序开发中如何将两个数组合并成一个数组?

问题描述如题,在.NET/C# 应用程序开发中如何将两个数组合并成一个数组?方案一如果在.NET 2.0或者以下版本中,由于没有LINQ,所以只能自定义实现将两个数组合并成一个数组的方法。如果数组是可以修改的,那可以在复制数组数据之前更改其中一个数组的长度,如下:T[] array1 = getOneArray();T[] array2 = getAnotherArray();int array1OriginalLength = arr...

.NET 2018-11-01 08:12 0评论 0收藏
68 浏览
喜欢(0)

[.NET].NET应用程序开发中如何修改WebClient对象的超时时间(timeout)?

问题描述在.NET应用程序开发中,很多时候需要使用程序向远程的API发起HTTP请求。而.NET的程序集内置了一个可以发起HTTP请求的类:WebClient,WebClient实现了下载/上传的一些方法,如:DownloadData,DownloadFile,DownloadString,OpenRead,OpenWrite,UploadData,UploadFile,UploadString,UploadValues等等。这些方法可...

.NET 2018-10-31 07:30 0评论 0收藏
AD 友情赞助
75 浏览
喜欢(0)

[.NET].NET应用程序开发中如何检测一个SqlDataReader对象中是否包含某个列名?

问题描述如题,在.NET应用程序开发中,如何检测判断一个SqlDataReader对象中是否包含某个列名?方案一public static class DataRecordExtensions{ public static bool HasColumn(this IDataRecord dr, string columnName) { for (int i=0; i < dr.FieldCount; i+...

.NET 2018-10-31 07:29 0评论 0收藏
1216 浏览
喜欢(0)

[C#].NET/C#程序开发中如何更优美地实现失败任务重试的逻辑?

问题描述在.NET/C#的程序开发中,有时候需要对一些失败的任务进行多次的重试,如果重试的次数达到我们设定的阀值,则再放弃任务,比如有以下的C#伪代码:int retries = 3;while(true) { try { DoSomething(); break; // success! } catch { if(--retries == 0) throw; else Thread.Sleep(1000);...

.NET 2018-02-25 23:02 0评论 0收藏
535 浏览
喜欢(0)

[C#].NET/C#程序开发中创建XML文档的方式有哪些呢?

问题描述如题,在.NET/C#程序开发中,我们很多时候需要接触到XML文档,有可能是从第三方接口获取到的数据是XML格式的,也有可能是自己需要提供XML文档给第三方使用,那么,我们如何创建XML文档,有哪些XML的创建方式呢?方案一在.NET 3.5或者以上版本中,我们可以使用XDocument来处理,如:Console.WriteLine( new XElement("Foo", new XAt...

.NET 2018-02-09 15:53 0评论 0收藏
AD 友情赞助
1505 浏览
喜欢(2)

[C#].NET/C#程序开发中获取一个实体类中的所有属性集合的方法有哪些呢?

问题描述如题,在.NET/C#程序开发中,获取一个实体类中的所有属性集合的方法有哪些呢?方案一使用反射,如果是一个实例对象,则使用GetType()方法的GetProperties():obj.GetType().GetProperties();如果是一个System.Type,则:typeof(Foo).GetProperties();例如:class Foo { public int A {get;set;} publi...

.NET 2018-02-09 14:33 0评论 0收藏
1042 浏览
喜欢(0)

[C#].NET/C#程序开发中获取Lambda表达式中属性名称的方法有哪些呢?

问题描述在.NET/C#程序开发中,有哪些方法从lambda表达式中获取属性的名称,比如有如下的方法,其中的参数是一个lambda表达式树:GetSortingInfo<User>(u => u.UserId);方案一public static string GetName(Expression<Func<object>> exp){ MemberExpression body = exp...

.NET 2018-02-09 14:21 0评论 0收藏
947 浏览
喜欢(0)

[C#].NET/C#程序开发中使用反射如果检测一个类型是否实现了一个接口?

问题描述在.NET/C#的程序开发中,反射中是否提供了一些用以检测指定的类型System.Type是否实现了某个接口的方法呢?比如有如下的接口和实现:public interface IMyInterface {}public class MyType : IMyInterface {}方案一你可以使用IsAssignableFrom来实现,如:typeof(IMyInterface).IsAssignableFrom(typeof(M...

.NET 2018-02-09 14:02 0评论 0收藏
1253 浏览
喜欢(0)

[.NET/C#].NET/C#程序开发中判断一个文件夹是否存在,不存在则创建的方法如何实现?

问题描述在.NET/C#的程序开发中,有一个上传文件的需要。在上传文件后,要将文件保存在指定的文件夹中,现在需要在保存文件之前先检查这个指定的文件夹是否存在,如果不存在,则创建一个文件夹,再保存文件。如果文件夹存在,则直接将上传的文件保存到此文件夹中。这个过程中的判断并创建文件夹的方法应该如何实现呢?方案一可以使用System.IO.Directory命名空间下的CreateDirectory()方法:string subPath =&...

.NET 2018-02-09 12:01 0评论 0收藏
2116 浏览
喜欢(2)

[.NET/C#].NET/C#程序开发中克隆/拷贝一个泛型集合List的方法有哪些?

问题描述在.NET/C#的程序开发中,当前有一个泛型的集合对象List<T>。当前希望克隆/拷贝这个泛型集合对象List<T>。泛型集合中的元素对象T是可以克隆的(clonable),但是集合对象List<T>没有直接可以克隆的方法list.Clone()。在.NET/C#程序开发中,有哪些方式可以实现以上泛型集合对象List<T>的克隆/拷贝操作呢? 方案一可以创建一个静态扩展方法,如:...

.NET 2018-02-09 11:00 0评论 0收藏
1009 浏览
喜欢(1)

[.NET/C#].NET/C#程序开发中如何将一个字符串按照指定的子字符串进行分割?

问题描述我们知道,在.NET/C#的程序开发中,可以使用Split()方法,将一个字符串按照指定的字符进行分割,但如果需要分割的是一个子字符串,又应该如何操作呢?比如有如下的字符串:var input = "THExxQUICKxxBROWNxxFOX";现在需要按子字符串xx,将这个变量input中的字符串进行分割,如何实现,有哪些方式呢?方案一使用Split(...)方法的重载,可以传入分割的子字符串,如:str...

.NET 2018-02-09 11:26 0评论 0收藏
503 浏览
喜欢(0)

[.NET/C#].NET/C#程序开发中使用程序重命名一个文件的方法有哪些呢?

问题描述如题,在.NET/C#程序开发中,如何使用程序重命名一个文件呢?方案一可以使用System.IO.File命名空间,其中的Move()方法将一个文件重命名为新的文件名称,如:System.IO.File.Move("oldfilename", "newfilename");但是请注意:Move()方法不会覆盖文件,如果相同的文件名已存在而是抛出异常。所以,为了程序的健壮,可以在使用Move...

.NET 2018-02-09 11:16 0评论 0收藏
903 浏览
喜欢(0)

[.NET/C#].NET/C#程序开发中如何删除字符串中非字母/数字/横线的其他字符?方法有哪些呢?

问题描述如题,在.NET/C#程序开发中,如何删除字符串中非字母/数字/横线的其他字符?具体的实现方法有哪些呢?方案一使用正则表达式Regex类的Replace("","")方法,如:Regex rgx = new Regex("[^a-zA-Z0-9 -]");str = rgx.Replace(str, "");方案二不使用正则表达式,因为正则表达式的可...

.NET 2018-02-09 11:04 0评论 0收藏
958 浏览
喜欢(1)

[C#].NET/C#程序开发中复制一个数据流(Stream)的内容到另一个数据流的方法有哪些?

问题描述如题,在.NET/C#程序开发中,复制一个数据流的内容到另一个数据流的方法有哪些?有没有一个标准的工具类库来完成这样的操作呢?方案一在.NET 3.5 或者以前的版本中,.NET Framework没有内置直接复制数据流的方法,所以我们需要手动来完成数据流的复制操作,如:public static void CopyStream(Stream input, Stream output){ byte[] buffer = n...

.NET 2018-02-09 10:44 0评论 0收藏
1624 浏览
喜欢(10)

[Dapper].NET/C#使用Dapper如何实现查询的分页功能?

问题描述比如当前有一个查询文章列表并且分页的需求,使用的是Dapper这个轻量级的.NET ORM组件。那么如何实现基于Dapper的查询并分页呢?方案一首先,Dapper组件中并未内置分页的功能,但是使用Dapper实现分页也并不难,比如我们可以使用Dapper的查询功能执行分页查询语句,然后返回一个IEnumerable<T>的查询结果集合,如:SELECT *FROM ( SELECT ROW_NUMBE...

.NET 2018-02-07 13:09 0评论 0收藏
1133 浏览
喜欢(4)

[Linq].NET/C#程序开发中使用Linq在不创建新对象的情况下如何修改集合元素中的某个指定属性的值?

问题描述如题,在.NET/C#程序开发中,使用Linq在不创建新对象的情况下如何修改集合元素中的某个指定属性的值?比如当前有如下的Linq查询表达式:var list = from something in someList select x // 这里需要修改某个属性的值如何在不创建新的实体对象的情况修改集合someList中每一项的某个元素的值呢?方案一创建一个Linq查询来连接查询,如:from item in...

.NET 2018-02-05 21:38 0评论 0收藏
AD 友情赞助