问题标签 [autofactory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
16765 浏览

asp.net-mvc - Autofac 错误 - 从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围

在我的一个 Web 应用程序中,我有一个使用 Autofac 的 Web 服务,svc 文件如下:

我为我的 Web 服务应用程序注册依赖项,如下所示:

从另一个 Web 应用程序,我也想使用 Autofac 连接到这些服务,所以我注册了以下依赖项:

在其中一个控制器中,我执行以下操作:

正在解析 IMyWebService 类型的 myServiceProxy,我看到它是一个透明代理,但是当我调用“CallSomeMethod”时出现错误:

从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身.

我在这里做错了什么?谢谢!

0 投票
2 回答
4868 浏览

c# - 使用模拟(Moq)对象更改 Autofac 模块中的注入

我有一个 Autofac 模块如下

此模块用于 ServiceClass:

我的问题是:如何通过模拟(Moq) ITimeConsume 类来测试 ServiceClass ?在这里,我尝试在下面编写一个测试:

如果这种方式不可能,那么模拟也可以注入的耗时类的更好设计是什么?

**

更新:

** 感谢@dubs 和@OldFox 提示。我认为关键是 Autofac 注入器应该在外部初始化而不是内部控制。因此,我利用 Autofac.ILifetimeScope 的“ On Fly ”构建功能并使用 LifeTime 范围参数设计 ServiceClass 构造函数。通过这种设计,我可以在单元测试中即时注册任何服务,如下例所示:

0 投票
1 回答
16511 浏览

java - IntelliJ 在同一模块中使用时找不到生成的源

我正在使用Google 的 AutoFactory 的注释处理器。我在同一个模块的其他地方进行了注释SomeClass@AutoFactory引用。new SomeClassFactory().create()

Maven配置:

我在 Maven 中添加了必要的依赖项:

运行时,$ mvn clean compile我看到它target/generated-sources/annotions/somepackage/SomeClassFactory已创建并且模块编译没有错误。

IntelliJ 配置:

  • Reimport all maven modules
  • Preferences-> Annotation Processors->Enable annotation processing
  • Rebuild Project

v14.1.4如果我的理解是正确的,这在我的 IDEA ( ) 版本中应该足够了。

编译器首选项 项目结构

我还执行了以下步骤:

  • 已验证generated-sources文件夹已添加为源Project Structure
  • 已验证 Maven 首选项Generated sources folders设置为Detect automatically
  • 验证源实际上是在重建时生成的(target首先删除文件夹以确保它是由 IntelliJ 生成的)
  • 按照@tilpner的建议,尝试Exclude output paths在项目结构中禁用
  • 使缓存无效并重新启动
  • 删除.idea文件夹和.iml文件
  • 尝试不同的设置Phase to be used for folders updatein Preferences-> Maven->Importing

问题:

执行所有这些步骤后,生成的类不会显示在项目资源管理器中。事实上,整个target目录无处可寻。编译失败cannot find symbol: SomeClassFactorynew SomeClassFactory().create()在编辑器中标记为红色,而 Maven 生成和编译没有任何问题。

我自己没有选择,非常欢迎任何帮助或建议!

更新:当我注释导致编译错误的代码时,IntelliJ 在编译消息中打印此警告:Warning:Output path /Users/.../target/generated-sources/annotations intersects with a source root. Only files that were created by build will be cleaned.

0 投票
0 回答
956 浏览

c# - Autofac WCF 集成

我试图将 autofac 与 WCF 集成一起使用。我正在使用https://code.msdn.microsoft.com/DI-with-WCF-using-Autofac-a3e8cbbb的解决方案。我可以通过添加服务引用来使用服务并调用操作。但是当我尝试使用 WCF 测试客户端或 SOAP UI 时,它没有给出响应。在 WCF 测试客户端中,它给出了异常 -

System.InvalidOperationException:提供的服务类型无法作为服务加载,因为它没有默认(无参数)构造函数。要解决此问题,请将默认构造函数添加到类型,或将类型的实例传递给主机。

我尝试为服务添加无参数构造函数,但之后它在调用服务时给出了另一个异常 -

由于内部错误,服务器无法处理请求。有关该错误的更多信息,请在服务器上打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或来自配置行为)以便将异常信息发送回客户端,或者根据 Microsoft .NET Framework SDK 文档打开跟踪并检查服务器跟踪日志。服务器堆栈跟踪:在 System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(消息回复,MessageFault 故障,字符串操作,MessageVersion 版本,FaultConverter faultConverter)

0 投票
1 回答
1922 浏览

c# - 使用 mock.Provide() 设置委托工厂,在 SUT 构造函数中使用

我正在尝试测试一个类的行为,当它通过委托工厂传递一个存根对象时。我制作了一个测试版本,其中所有类的依赖项(工厂除外)都作为 Mock 对象传递,并且它按预期工作。现在我正在尝试使用 AutoMock 让容器自动创建模拟。

我在使用 mock.Provide() 在 ClassUnderTest 的构造函数中传递委托工厂的具体值时遇到问题。(就像这个评论所暗示的)

我正在测试的课程:

业务逻辑模块:

测试类:

}

如果有任何迹象表明我做错了什么,我将不胜感激。我错过了什么?怎么可能修好?这是一个简单的语法修复还是我的测试方法有问题?

在此先感谢您的时间。

0 投票
1 回答
1203 浏览

android - 使用 Dagger-2 和 Autofactory 时实现辅助注入的问题

我正在使用Dagger-2(版本:2.7)和AutoFactory(版本:1.0-beta3)。我面临一个特殊的问题。

我有一个 MyRequest 类,其 ctor 有 2 个参数:

  1. ConnectivityManager 配置
  2. 整数值

我将ctor创建为

我有一个包含以下内容的模块

在同一个模块中,我执行以下操作

我收到不兼容类型的构建错误 :ConnectivityManager 无法转换为 Provider < ConnectivityManager >。

知道如何解决这个问题吗?

0 投票
1 回答
991 浏览

android - Dagger2:找不到符号@Autofactory 类

我想将我的项目从 dagger 1 迁移到 dagger 2。添加 dagger 2 依赖库后,我的项目中的所有 @Autofactory 类都出现“错误:找不到符号类 MyClassFactory”错误。但是我看到这些类是生成的,但 IDE 无法识别。这个类与 dagger1 配合得很好。如果他们遇到类似的问题,有人可以帮助我吗?

我正在使用以下库。

请帮忙。

0 投票
1 回答
482 浏览

java - 如何将 @AutoFactory 与 @AutoValue 类一起使用?

假设我有一个简单的 AutoValue 类:

现在我想要一个工厂,所以每次我想要一个 Foo 时我都不需要通过 commonDep。如果这不是 AutoValue 类,我可以通过注释 CommonDependency 来轻松地使用 AutoFactory @Provided

你知道让这两个代码生成器一起工作的方法吗?

0 投票
1 回答
293 浏览

java - 使用自动工厂生成的工厂无法导入 glide 生成的 api

我正在使用 auto-factory 和 glide 生成的 api。auto-factory 生成的GlideRequests类使用 GlideModule 生成的类,但是当构建完成时,生成的工厂类中不会导入 GlideRequests。

就好像 Glide 在自动工厂完成它的事情之后生成它的类。

有什么想法可以解决这个问题吗?也许改变构建/生成顺序?

谢谢你。

0 投票
1 回答
725 浏览

c#-4.0 - Autofac - 如何解析使用 JSON 配置注册的实例

我们的要求是为不同的用户定义线程提供不同的 Logger 实例。

] }

我创建了这个 JSON 并将其注册为一个模块,以便每个值都有单独的注册 - 18122 和 18105。但我不明白如何在运行时解决它们以及确切的位置。

我创建了 2 个文件夹,但记录器不写入其文件,它也写入另一个文件。简而言之,我通过解析获得的实例不是该特定值的实例。

如果我在构造函数中注入它,只有 18105 得到解决。

有人可以帮忙吗!

谢谢!