3
[ClassInterface(ClassInterfaceType.None)]
[Guid("12C969B3-330D-4230-ACDA-F9BED3286B1E")]
[ProgId("Lib.Class")]
public class MyService : ServicedComponent, IMyService
{
      ...
}

单元测试:

MyService target = new MyService ();

此代码创建一个透明代理对象,这是组件在生产中运行的方式。

如何在进程内和本地创建类的实例,以便注入其依赖项?

4

1 回答 1

1

我不喜欢它,但您可以使用条件编译语句 Debug/Release 或者我使用 DebugComPlus/Debug/Release(其中只有 Debug 不是 ServicedComponent)。请注意,您应该在 Debug 条件下实现 IDisposable,因为您必须在 ServicedComponent 上调用 Dispose 以获得真实代码,并且如果不是 ServicedComponent,则 Dispose 方法将不存在。

否则,我真的建议只通过 COM+ 对其进行测试,因为这是您将在现实生活中运行的内容,并且您会在生产中遇到 COM+ 问题,如果您在 COM+ 之外进行测试,您会错过这些问题。这就是我们现在在我正在进行的一个项目中使用它的方式,因此有很多难以发现的错误。个人现在总是通过 COM+ 进行测试。

于 2009-11-19T01:32:51.870 回答