我有一个通用接口,它有许多实现,可能在不同的程序集中。我通过NuGet在我的项目中安装了Simple Injector 4.3.0,并且希望将实现者注册为一个集合。我的配置由简单注入器( Simple Injector )进行验证,但容器在调用GetAllInstances时返回一个空集合。
类似于我的代码的MCVE:
using SimpleInjector;
using System;
using System.Linq;
namespace SIMultiInterfaceTest
{
public interface IFoo<T> { }
public
我希望在我的项目中注册管道行为,并通过autofac注册。
我是这样实施的:
public class CheckUserNameExistValidation<TRequest, TResponse> : IPipelineBehavior<CreateUserCommand, OperationResult<string>>
{
private readonly IDomainUnitOfWork unitOfWork;
public CheckUserNameExistValidation(IDomainUnitOfWork unit
我正在尝试将cqrs实现到我的系统中,如何在simple injector中注册泛型集合?当我尝试运行我的代码时,我得到了异常,请使用其他重载来注册这个类型。 public class Ioc
{
public static SimpleInjector.Container Container;
static Ioc()
{
Container = new SimpleInjector.Container();
Container.Register<IHandleEvent, Handler>(L
有可能定义一个通用的Guice吗?
我总是得到一个CreationException
Exception in thread "main" com.google.inject.CreationException: Unable to create injector, see the following errors:
1) com.example.test.GenericClass<T> cannot be used as a key; It is not fully specified.
1 error
at com.google.inject.int
我对ArrayLists和泛型有些困惑,例如,在下面的程序中,当我声明Gen<Integer>iOb=new Gen<Integer>(88);时,它声明了一个通用类型的Integer,对吗?但是,如果我以同样的方式宣布一个数组列表的话?对于数组,它是在尖括号中的类型,然而,在研究泛型时,它说尖括号中的类型是泛型类型?我如何知道它是类类型的数组列表还是泛型的数组?
//A simple generic class
//Here, T is a type parameter that
///will be replaced by a real type
//when a
我试图创建一个系统的领域建模在类型记录,强烈影响斯科特瓦拉斯钦的领域建模是基于F#的功能。
我很难找到正确的方法来处理泛型属性的传递,这样泛型对象类型就可以将属性指定为另一种泛型类型的某种形式,而无需立即强制解析。很难用文本来解释,所以这里有一个代码示例,大致说明了我试图实现的目标:
// We create a Simple generic so that we can
// prevent the direct use of primitives
// giving us an oppotunity to validate input (see make* fns below)
type
我是WPF的新手,所以可能会遗漏一些明显的东西,但在任何地方都找不到答案。
基本上,我正在构建一个定制的树集合,它以一种特定的方式进行排序,树的节点被类型化为集合的类型。在TreeView中测试时,当节点是通用节点时,HierarchicalDataTemplate不起作用。如果它们不是通用的,那也没问题。
下面是一个简单的节点类来演示:
public class SimpleNode<T>
{
private List<SimpleNode<T>> _children;
private string _name;
public S
我希望能够使用Guice注入泛型接口的泛型实现。
public interface Repository<T> {
void save(T item);
T get(int id);
}
public MyRepository<T> implements Repository<T> {
@Override
public void save(T item) {
// do saving
return item;
}
@Override
public T get(int id) {
// get item a
在我的ASP.NET核心2项目中,我创建了继承RazorPage类的新类,以在视图中添加一些附加属性。
public abstract class WebViewPage<TModel> : Microsoft.AspNetCore.Mvc.Razor.RazorPage<TModel>
{
public string Version
{
get
{
return "1.00.100";
}
}
public User CurrentUser
我正在构建一个查询管道(使用IQueryHandler的装饰器模式),在该管道中,在实际执行查询之前,会处理许多横切关注点。其中一个问题是验证,我使用的是Fluent验证库。
Simple Injector是选择的IoC容器,我使用它注册每个IQueryValidationHandler,使用泛型逆差和以下注册:
container.RegisterManyForOpenGeneric(typeof(IQueryValidationHandler<>), container.RegisterAll, _assemblies);
这对于解决以下实现非常有效:
public class
我刚刚开始为我的moryx项目写一些测试。因此,我必须稍微放松一些依赖关系。因此,我尝试将插件的依赖项注入到“第三方”实现中。(它不是真正的第三方,但它在另一个项目中,我通过nuget将其添加到我的项目中。)因此,该接口及其实现是第三方库的一部分。 有没有办法注册接口并将其实现设置为Moryx.Runtime.Container,以便将其注入?或者我必须要写一个包装器? 这是我尝试过的:(它不工作:) [ServerModule(ModuleName)]
public class ModuleController : ServerModuleBase<ModuleConfig>
代码中有一个错误,说无法创建E的泛型数组。有人能在这方面帮我吗?谢谢
**Q = new E[N];**
下面是完整的代码;
package org.circular;
public class CircularArrayQueue<E> implements QueueADT<E> {
private static final int capacity = 5;
private E[] Q;
private final int N; // capacity
private int f = 0;
private int r = 0;
public Circ
我想知道是否有一种方法可以在StructureMap中连接嵌套泛型,而不必指定内部类型或创建特定于类型的接口。我意识到这有点令人困惑,所以一个编码示例可能更好地解释了我正在寻找的功能。
public interface IParser<T> { }
public class Range<T> where T : struct { }
public class RangeParser<T> : IParser<Range<T>> { }
从理论上讲,我希望能够像下面这样遵循结构映射的开放通用功能:
For(typeof(IReposit
使用Unity,我尝试将以下接口注册到一个模型中:
public interface IGenericRepository<T> : IDisposable where T : class
这是在Unity的Bootstrapper中注册的正确方式吗?
container.RegisterType<IGenericRepository<TypeBasedOverride>, GenericRepository<TypeBasedOverride>>(new HierarchicalLifetimeManager());
在一个依赖于ASP.NET 1.1.1的Microsoft.Extensions.DependencyInjection核心1.1.2 web项目中,我试图通过它的实现和接口注册一个通用的FluentValidation验证器。在运行时,在构建主机期间,我得到了以下异常:
An unhandled exception of type 'System.ArgumentException' occurred in Microsoft.Extensions.DependencyInjection.dll
Cannot instantiate implementation type
我无法找到正确的使用RegisterAllOpenGeneric的方法
我有以下简单的定义:
public interface ISubscribeTo<T> { }
public class AnEventOf<T> { }
public interface IMarker { }
public class PocoB : IMarker { }
和一个正常的Subscriber
public class SubscribeToPocoB : ISubscribeTo<AnEventOf<PocoB>>
{
}
在此代码中注册:
privat
我在我的Asp .Net核心6应用程序中使用了一个.Net库。对于一组请求,我有相同的逻辑,所以我想对所有请求使用相同的处理程序。这个问题并不是新问题,但我发现的解决办法并没有帮助我。我有自己的解决办法来解决这个问题,但我不喜欢它,希望有人知道更好的方法来解决这个问题。
本例如下所示:
public class HandlerRequest<T> : IRequest
{
public T Data { get; set; }
}
public class Handler<T> : IRequestHandler<HandlerRequest<T&
我能够使用FluentValidation AbstractValidators注册FluentValidatorFactory。但是,它感觉不太好,因为并不是所有的IoC容器注册都是在引导/组合根过程中发生的。相反,
组合根
public class SimpleDependencyInjector : IServiceProvider
{
public readonly Container Container;
public SimpleDependencyInjector()
{
Container = Bootstrap();
}
我很难理解调用GetCurrentRegistrations到底会返回什么。
我想要完成的是确定Register调用之前是否已经被调用过。在这种情况下,我想跳过并继续。容器在进程中不被锁定是很重要的!
例如:
var container = new Container();
container.Register(typeof(IFoo), typeof(Foo), Lifestyle.Transient);
var currentRegistrations = container.GetCurrentRegistrations();
if (currentRegistrations.Any(r
如何在asp.NET 2.2中添加通用后台服务?
public class TestBackgroundService<T> : BackgroundService
{
private ICustomClass<T> _customClass = new CustomClass<T>();
public TestBackgroundService(ICustomClass<T> customClass)
{
_customClass = customClass;
}
protected o