Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用洋葱架构的Windows服务

使用洋葱架构的Windows服务
EN

Stack Overflow用户
提问于 2014-09-18 13:16:33
回答 1查看 363关注 0票数 0

我见过的所有洋葱架构示例都是在ASP.NET MVC应用程序的上下文中进行的。他们倾向于避免UI和服务实现(基础结构)之间的直接引用,方法是将IIS放在基础结构DLL中,并使用某种魔术(HttpModule或WebActivator)使IoC在正确的时间执行该设置代码。

在我的例子中,我正在开发一个视窗(TopShelf)服务,并且正在努力解决如何保持服务控制项目与基础设施项目完全解耦。在IIS web应用程序中,没有可以挂钩的执行管道。

我能想到的最好的办法是让服务项目扫描IoC注册表/模块类的DLL,但这看起来仍然不是很干净。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-09-22 11:37:13

根据定义,Windows服务不是UI,所以我不确定这将实现什么。

所有TopShelf项目需要的是对实际服务类的引用:您的基础设施项目不需要引用TopShelf,而是引用shown in the documentation

如果您没有来自TopShelf项目的对基础设施服务的引用,那么配置您的服务将是丑陋的。

您将需要使用ObjectFactory或ServiceResolver或类似的东西来使用IoC构造服务,但无论如何,这将是组合的根。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25913751

复制
相关文章
[译] 同时使用多个相机流 — Android 相机介绍
这篇文章是当前关于 Android 相机介绍中最新的一篇,我们之前介绍过相机阵列和相机会话和请求。
Android 开发者
2019/03/14
2.5K0
[译] 同时使用多个相机流 — Android 相机介绍
SAP编号范围对象相关函数
NUMBER_RANGE_INTERVAL_LIST 这个函数模块获取指定编号范围对象的现存间隔,并且放到内表中。这个内表可以被传递给函数模块NUMBER_RANGE_INTERVAL_UPDATE来修改间隔。 NUMBER_RANGE_INTERVAL_UPDATE 用这个函数模块可以维护给定编号范围对象的间隔。变更都被传递到一个内表中,并且复制到本地内存。在调用这个函数模块前,必须用NUMBER_RANGE_ENQUEUE锁定编号范围对象,而在把修改写入到数据库之后,再用NUMBER_RANGE_DEQUEUE执行解锁。调用函数模块NUMBER_RANGE_UPDATE_CLOSE把本地内存中的内容复制到数据库中。 NUMBER_RANGE_OBJECT_GET_INFO 这个函数模块获取指定编号范围对象的信息。这些信息被放在一个表结构中,必须被声明为结构INROI类型。 NUMBER_RANGE_SUBOBJECT_LIST(只用于对象类型4~8) 这个函数模块获取指定编号范围对象的现有子对象。这些子对象被放在一个内表中。 NUMBER_RANGE_SUBOBJ_GET_INFO(只用于对象类型4~8) 这个函数模块获取指定编号范围对象的现存子对象的信息。这些信息放在一个类型为INROI的表结构中。 NUMBER_RANGE_UPDATE_CLOSE 用这个函数模块把在本地内存中通过函数模块NUMBER_RANGE_GROUP_UPDATE和NUMBER_RANGE_INTERVAL_UPDATE所做的修改写入数据库。在调用这个函数模块之后,应该把被修改的编号范围对象解锁。 NUMBER_RANGE_UPDATE_INIT 如果想要撤销所有尚未被写入数据库的本地内存修改,就可以用这个函数模块重新初始化本地内存。 编号范围对象读取和维护服务 函数组SNR2 这个函数组中的函数模块可以读取和维护数据库中的所有编号范围对象。 NUMBER_RANGE_OBJECT_MAINTAIM 这个函数模块提供了所有维护指定编号范围对象的屏幕,并且提供维护间隔分支和显示修改文档的能力。用户对编号范围对象执行的操作都会传递到输出参数里。 NUMBER_RANGE_OBJECT_CLOSE 用这个函数模块可以把用NUMBER_RANGE_OBJECT_UPDATE函数模块对编号范围对象做出的修改写入到数据库中。如果间隔被修改影响了,也会一起写入。同时为所有修改创建修改文档。有一个标记会记录间隔是否被修改。 NUMBER_RANGE_OBJECT_DELETE 用这个函数模块可以删除整个编号范围对象的定义,包括它的文本。这个操作直接对数据库。这个函数模块不提供到修正和传输系统的连接。 NUMBER_RANGE_OBJECT_INIT 用这个函数模块可以初始化给定编号范围对象的本地内存。如果在用户事务中提供了编号范围对象维护功能,并且想要在没有保存时提供撤销功能,就可以使用它。 NUMBER_RANGE_OBJECT_LIST 用这个函数模块获取系统中的全部编号范围对象和相关文本。信息都保存在一个内表中。不需要考虑本地内存的内容。 NUMBER_RANGE_OBJECT_READ 这个函数模块获取指定编号范围对象的文本和属性。返回的记录可以用函数模块NUMBER_RANGE_OBJECT_UPDATE和NUMBER_RANGE_OBJECT_DELETE来修改。 NUMBER_RANGE_OBJECT_UPDATE 这个函数模块首先执行错误检查,如果无误,就把新建的编号范围对象或修改过的编号范围对象复制到本地内存中。它不提供到修正和传输系统的连接。 编号分配和检查 函数组SNR3 这个函数组中的函数模块管理编号分配。 NUMBER_CHECK 只有在外部给号的时候才需要这个函数模块,它检查一个编号范围对象编号是否存在于指定的编号范围间隔。 NUMBER_GET_INFO 这个函数模块获取指定编号范围对象中的编号范围间隔的信息。 NUMBER_GET_NEXT 当内部给号的时候需要用这个函数模块,它分配指定编号范围对象中的编号范围间隔的下一个空余编号。如果间隔中的最后一个编号也被发放了,号码分配就会从头开始。返回码状态说明号码分配是否出错,或者是已经进入临界区。 实用程序 函数组SNR4 NUMBER_RANGE_INTERVAL_INIT 使用这个函数模块可以初始化指定编号范围对象及其子对象的全部内部编号范围间隔。 术语表 业务对象
matinal
2020/11/27
9940
Unity 从UI中拖拽对象放置并拖动[通俗易懂]
需求:点击UI,在场景中生成3D对象,对象跟随鼠标移动,放置后可再次拖拽对象,改变其位置。做了一个小Demo,如下图所示:
全栈程序员站长
2022/09/10
2.7K0
Unity 从UI中拖拽对象放置并拖动[通俗易懂]
Brother标签机连续打印多个标签
搞网络的经常需要用到标签机给网线打标签,给设备打标签。打印多个标签一个一个打起步累死?所以记录分享下今日使用的方法,防止以后再打标签忘记怎么操作。(使用的是Brother标签机) 首先、新建表格、做好依次打印的内容(标签机只读一列,可以在表格内添加规则在进行整理打印)
张旭博客
2022/12/27
4.1K0
Brother标签机连续打印多个标签
Unity - 在鼠标点击的位置放置对象
你可以使用函数实例化多个给定的游戏对象或预制对象。 Instantiate (Object Target, object’s position, object’s rotation)或者Instantiate (Object Target)。
hrscy
2018/08/30
5.3K0
Unity - 在鼠标点击的位置放置对象
问与答94:如何替换多个相同的数据并依次编号?
Q:我有一个工作表,我想将里面多个相同的数据进行替换,并按顺序依次编号,如何使用VBA代码实现?例如下图1的列B中有多个“完美Excel”,使用VBA代码将其替换为“excelperfect”并加上数字编号,即“excelperfect1”、“excelperfect2”、“excelperfect3”……等。
fanjy
2021/02/22
1.5K0
问与答94:如何替换多个相同的数据并依次编号?
为wordpress添加Canonical标签
在 WordPress 2.9 之前,让 WordPress 博客支持 Canonical 标签是需要通过插件或者手工修改主题的 header.php 文件来实现。如在主题中加如下的代码:
ytkah
2022/03/14
5130
audio标签以及audio对象
一.audio标签 简单语法 <audio src="音频链接"></audio> 属性 属性 值 描述 autoplay 如果出现该属性,则音频在就绪后马上播放。 controls 如果出现该属性,则向用户显示控件,比如播放按钮。 loop 如果出现该属性,则每当音频结束时重新开始播放。 preload 如果出现该属性,则音频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。 src url 要播放的音频的 URL。 二.audio对象 1.对象属性 属性 描述 a
小小咸鱼YwY
2020/06/19
1.9K0
多个Promise对象的处理
如果某件事情需要依照多个对象完成后才能执行,那么我们可以使用Promise.all来管理,将这些状态全部执行完毕后才执行下一个!
十月梦想
2018/10/09
1.1K0
Emlog自动为文章标签添加该标签的链接
我们在编写文章时,经常需要添加一些标签的链接,这样不仅可以优化我们的内链,对用户来说也可以参照相关的文章,如果对文章的关键字进行手动添加链接,那样对我们来说太麻烦了,而且在标签关键词很多的情况下我们是记不住的,那怎么如何让Emlog站点的文章自动添加标签链接变为内链呢?其实我们只需要在主题目录下的module.php文件中添加一段代码就可以实现了。 打开我们主题的module.php文件添加如下代码: //自动为文章标签添加该标签的链接 function tag_link($content){
Youngxj
2018/06/07
1.2K0
『为金融数据打标签』「2. 元标签方法」
在〖三隔栏方法〗一贴里,我们已经解决了第一个问题,即根据止损止盈来给数据打标签。本帖则关注第二个问题,即如果下单,该下多少。
用户5753894
2019/12/25
2.1K0
『为金融数据打标签』「2. 元标签方法」
为Typecho增加彩色标签云
Typecho是一个轻量级的博客程序,轻量意味着很多其他博客程序(如Wordpress等)具有的功能或模块而Typecho没有,比如说侧栏上的标签云就没有显示,但是其实Typecho已经有了关于标签云的挂件,只是没有显示出来而已,需要我们自己添加一下。 具体操作如下: 登录后台,控制台——外观——编辑当前外观,选择侧边栏的模板,把代码添加一下,比如我的这样写的:
徐大嘴
2019/03/21
1.9K0
为Typecho增加彩色标签云
Typecho是一个轻量级的博客程序,轻量意味着很多其他博客程序(如Wordpress等)具有的功能或模块而Typecho没有,比如说侧栏上的标签云就没有显示,但是其实Typecho已经有了关于标签云的挂件,只是没有显示出来而已,需要我们自己添加一下。 具体操作如下: 登录后台,控制台------外观------编辑当前外观,选择侧边栏的模板,把代码添加一下,比如我的这样写的:
Erwin
2020/02/24
8520
为Magic Lantern 固件选一台相机
ML是一个开源的相机固件,可以提供非常多的功能,这篇文章就是写固件和如何选一台相机的杂文。
云深无际
2022/02/09
1.2K0
为Magic Lantern 固件选一台相机
标签制作软件中如何导出标签模板为PDF文件?
最近小编遇到有些客户问在标签制作软件中设计好的标签模板,能不能导出PDF文件保存,小编的回答是当然可以,而且操作也是非常简单的,接下来小编给大家演示下是如何操作的。
中琅软件
2019/06/25
1.8K0
Hexo博客进阶教程(一)| 优化文章永久链接为数字编号
这种方式不仅导致链接变得非常长,而且一旦修改文章发布日期或者标题,链接立马失效,造成大量死链,所以:
Mculover666
2020/07/16
1.8K1
Hexo博客进阶教程(一)| 优化文章永久链接为数字编号
对前端传入的json对象解析成多个对象
multiRequestBodyDemo(@MultiRequestBody("dog")
路行的亚洲
2020/07/16
3K0
c++ const放置的位置
标准中int const a 与 const int a 是完全等价的。正因为如此,会有很多各种不同的风格,同样的还有“*是跟类型还是变量?”,比如char* p与 char *p,它们是等价的。
meteoric
2018/11/19
1.9K0
Yarn管理放置规则
这是CDP中Yarn使用系列中的一篇,之前的文章请参考<使用YARN Web UI和CLI>、<CDP 中配置Yarn的安全性>、<CDP的Yarn资源调度与管理>、<CDP中Yarn管理队列>、<Yarn在全局级别配置调度程序属性>和<Yarn配置每个队列属性>。
大数据杂货铺
2021/09/15
2.2K0
Yarn管理放置规则
为Typecho添加更多html标签支持
// 找到这一行,在引号内添加div // 这里一般在第17行左右 public $_commonWhiteList =='kbd|b|i|strong|em|sup|sub|br|code|del|a|hr|small'; // 完成示例 public $_commonWhiteList =='kbd|b|i|strong|em|sup|sub|br|code|del|a|hr|small|div'; 同理,想要什么html标签都可以按照同样的方法加
Yangsh888
2022/04/03
1.2K0

相似问题

计算startTime和endTime之间的分钟差

30

使用startTime和testDuration计算endTime

41

如何使用无痛脚本计算starttime和endtime

113

是否可以动态设置StartTime/EndTime?

22

从StartTime和EndTime计算移位的SQL函数。

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文