使用Topshelf创建Windows服务(转)
Calculator
public class Calculator : ICalculator
{
public Calculator()
{
Logger = LogManager.GetCurrentClassLogger();
} public ILogger Logger { get; set; } public CalculationResult Add(string n1, string n2)
{
Logger?.Info($"received request to Add {n1} to {n2}"); return Calculate(n1, n2, _add);
} public CalculationResult Subtract(string n1, string n2)
{
Logger?.Info($"received request to Subtract {n2} from {n1}"); return Calculate(n1, n2, _subtract);
} public CalculationResult Multiply(string n1, string n2)
{
Logger?.Info($"received request to Multiply {n1} by {n2}"); return Calculate(n1, n2, _multiply);
} public CalculationResult Divide(string n1, string n2)
{
Logger?.Info($"received request to Divide {n1} by {n2}"); return Calculate(n1, n2, _divide);
} private static CalculationResult Calculate(string n1, string n2, Func<double, double, double> calculate)
{
var value1 = n1.ToDouble();
if (!value1.HasValue)
{
return GetCouldNotConvertToDoubleResult(n1);
} var value2 = n2.ToDouble();
if (!value2.HasValue)
{
return GetCouldNotConvertToDoubleResult(n2);
} double result = calculate(value1.Value, value2.Value);
return new CalculationResult
{
Answer = result
};
} private static readonly Func<double, double, double> _add = (value1, value2) => value1 + value2;
private static readonly Func<double, double, double> _subtract = (value1, value2) => value1 - value2;
private static readonly Func<double, double, double> _multiply = (value1, value2) => value1 * value2;
private static readonly Func<double, double, double> _divide = (value1, value2) => value2 == ? double.NaN : value1 / value2; private static CalculationResult GetCouldNotConvertToDoubleResult(string input)
{
return new CalculationResult
{
Message = $"Could not convert '{input}' to a double"
};
}
}
https://github.com/NotMyself/CalculatorService.git
http://www.cnblogs.com/jys509/p/4614975.html
使用Topshelf创建Windows服务(转)的更多相关文章
- 使用Topshelf创建Windows服务
概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...
- Topshelf创建Windows服务
使用Topshelf创建Windows服务 概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps ...
- 【第三方插件】使用Topshelf创建Windows服务
概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...
- C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案
本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...
- 使用Topshelf创建Windows服务[转载]
概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...
- [Solution] Microsoft Windows 服务(2) 使用Topshelf创建Windows服务
除了通过.net提供的windows服务模板外,Topshelf是创建Windows服务的另一种方法. 官网教程:http://docs.topshelf-project.com/en/latest/ ...
- 使用 Topshelf 创建 Windows 服务
Ø 前言 C# 创建 Windows 服务的方式有很多种,Topshelf 就是其中一种方式,而且使用起来比较简单.下面使用 Visual Studio Ultimate 2013 演示一下具体的使 ...
- 使用Topshelf创建Windows 服务
本文转载: http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html http://www.cnblogs.com/jys509/p ...
- Quartz.NET+Topshelf 创建Windows服务
由于项目开发中经常会有定时任务执行的需求,所以会第一时间就想到 windows 服务 的方式,但是做过开发的同学都知道windows服务不利于调试,安装也麻烦: 并且有开源的作业框架Quartz.NE ...
- Topshelf 创建windows服务注意事项
其中项目应该是控制台应用程序 test.exe需要赋与管理员权限,右键属性可以定义. test.exe install test.exe unstall
随机推荐
- MySQL在windows系统的安装
原文:https://blog.csdn.net/wokaowokaowokao12345/article/details/76736152 MySQL在windows系统的安装 原创 2017年08 ...
- MFC DLL对话框调用
Regular Dll using shared MFC DLL extern "C" __declspec(dllexport) void Show() { AFX_MANA ...
- vc listview 大图标间距设置
SendMessage(this.listViewChart.Handle, LVM_SETICONSPACING, 0, 0x10000 * 140 + 130); 其中 ...
- 代码规范审查 - Sonar集成Visual Studio
开发人员可以使用Sonar的集成插件在开发阶段进行实时代码质量审核,在代码编写阶段分析出当前代码的质量及规范漏洞,并给出合理的修改建议.编写高质量.高维护性的代码变得更简单! VS集成Sonar之前 ...
- Python学习(四)数据结构 —— str
Python 字符串 str 本章大致介绍了 Python 的字符串类型 str,包括字符串的赋值及转义.字符串运算符.字符串格式化输出 以及 一些字符串的内建函数等. 字符串赋值及转义 我们可以使用 ...
- UltraISO制作ISO镜像文件
怎样制作一个ISO的镜像文件呢,镜像文件的应用范围比较广泛,最常见的应用就是数据备份(如软盘和光盘).随着宽带网的普及,有些下载网站也有了ISO格式的文件下载,方便了软件光盘的制作与传递.常见的镜像文 ...
- JavaScript实现瀑布流
前端内容: 使用JavaScript和四个div,将照片放入四个div中 <!DOCTYPE html> <html lang="en"> <head ...
- 虚机启动失败-Event 1069
Failover cluster中的一台虚机启动失败. 报错如下: 文字信息关键字如下: Event 1069; Event 21502; 0x80004005; Cluster resource ' ...
- 解决eclipse中运行web项目时弹出的"Port 8080 required by Tomcat 9.0 Server at localhost is already in use...
1.tomcat默认端口是8080,可以修改通过tomcat的端口 修改tomcat\conf\server.xml 结果运行程序,还是报"Port 8080 required by ...
- Android安装包相关知识汇总 (编译过程图给力)
转自: https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208008519&idx=1&sn=278b7793699 ...