小编Adi*_*cov的帖子

IObservable与普通事件或为什么我应该使用IObservable?

微软在.NET Framework 4中引入了BCL IObservable<T>接口,我想,"太好了,最后,我必须使用它!" 所以我深入挖掘并阅读帖子和文档,甚至实现了模式.

在这样做之后,我意识到基本实现实际上将所有T事件发送给所有订阅者,而不对其进行任何过滤; 即普通广播.我在某处读到了Observable模式用于普通广播.我觉得这不是真的,我错过了一些东西.

我的问题:

  1. 如果我添加一个过滤机制,使用Observable模式和只使用普通CLR事件有什么区别?

  2. 应该何时使用此模式,何时应该选择使用普通CLR事件?

  3. Observable模式的主要优点是什么?

events design-patterns .net-4.0 system.reactive

42
推荐指数
1
解决办法
1万
查看次数

我可以在Visual Studio 2013中使用Visual Source Safe吗?

我可以在visual studio 2013中使用visual source safe吗?

我只能看到GIT和Team Foundation ......

谢谢.

visual-sourcesafe visual-studio-2013

18
推荐指数
1
解决办法
2万
查看次数

如何在运行时(初始化之后)注入对象?

我在当前正在进行的两个项目中使用依赖注入技术。

我使用 Unity 作为我的 IoC 框架。

我正在使用一个名为 ComponentBuilder 的类,它负责创建应用程序对象及其事件订阅,作为应用程序初始化的一部分。

应用程序运行后,所有对象都已准备就绪,并且数据从一个对象传递到另一个对象。

我遇到的问题是:

有些对象是在初始化后动态创建的,这些对象需要已经存在的其他对象。

由于 ComponentBuilder 已经完成了它的部分,我需要找到一种将所需对象传递给这些“动态”对象的方法。这些动态对象实际上是在运行时创建的对象的层次结构,层次结构中最深的对象需要来自层次结构顶部的组件(对象)。

我想到了两种可能的解决方案(我都不喜欢它们):

  1. 将所有对象的容器从 ComponentBuilder 传递给动态对象,以便它们可以使用和订阅所需的对象。此选项的主要缺点是公开所有对象,这可以隐藏对象之间的依赖关系。我看到有些人将对象容器传递给所有对象,就好像它是记录器或显示器一样,​​我认为这是错误的,并且隐藏了我们想要公开给其他对象的依赖关系。

  2. 将所需的对象传递给在初始化时创建的第一个对象,以便稍后将对象沿着对象层次结构传递到动态对象。此选项的主要缺点是层次结构中的某些对象不需要这些对象。

你能想出更好的解决方案吗?

c# dependency-injection ioc-container unity-container

5
推荐指数
1
解决办法
1404
查看次数

如何正确触发对链接sql服务器的插入?

我在两个不同的sql服务器(一个是SqlServer 2000,另一个是2008)中有相同的表。

我正在使用 sql server Management Studio。

我希望每次在 SqlServer 2000 表(Table_1)中的表上进行插入时,都会发生触发器,并且记录也会被插入到 SqlServer 2008 表(也是 Table_1)中的同一个表中。

sql server 2008 被定义为链接服务器,可以使用 sql server management studio 从 2000 db 连接运行查询并在 2008 db 上执行插入。

触发器定义如下:

ALTER TRIGGER [dbo].[trgrTable] 
   ON  [dbo].[Table_1]
   AFTER INSERT
AS 
BEGIN

 INSERT INTO [TLVSQL].[AVI_DEV].[dbo].[Table_1](ID, Value)
      SELECT INSERTED.ID AS ID, INSERTED.Value AS Value
      FROM INSERTED

END
Run Code Online (Sandbox Code Playgroud)

[TLVSQL].[AVI_DEV]是 2008 年的数据库名称。

但是每次我在 2000 表上执行插入时,我都会收到一条消息,指出插入由于“sqloledb 无法启动分布式事务链接服务器...”而无法提交。

链接服务器的安全委托已明确定义,我将安全凭证显式设置为 db_owner 的用户/密码。

我究竟做错了什么 ?还有另一种方法可以完成我的要求吗?

谢谢。

sql sql-server triggers linked-server sql-server-2008

2
推荐指数
1
解决办法
2万
查看次数