是否可以使这些东西工作(某种方式强制Objectfactory创建像Activator这样的实例)
在下面的例子中,所有东西都放在一个sigle组件中
public interface IUnitOfWorkFactory
{
IUnitOfWork Create();
}
internal class NHUnitOfWorkFactory : IUnitOfWorkFactory
{
public IUnitOfWork Create()
{
//// do needed stuff
}
}
Run Code Online (Sandbox Code Playgroud)
引导:
ObjectFactory.Configure(x =>
{
x.ForRequesedType<IUnitOfWorkFactory>.TheDefaultIsConcreteType<NHUnitOfWorkFactory>();
});
Run Code Online (Sandbox Code Playgroud)
用法:
IUnitOfWorkFactory factory = ObjectFactory.GetInstance<IUnitOfWorkFactory>();
Run Code Online (Sandbox Code Playgroud)
我的结果:
Porktal.Core.Tests.UnitOfWorkTests.Can_Start_Unit_of_Work : StructureMap.StructureMapException : StructureMap Exception Code: 207 Internal exception while creating Instance 'Porktal.Core.Data.NH.NHUnitOfWorkFactory, Porktal.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' of PluginType Porktal.Core.Data.IUnitOfWorkFactory. Check the inner exception for more details. ---- System.MethodAccessException : Porktal.Core.Data.NH.NHUnitOfWorkFactory..ctor() Stack Trace: at StructureMap.Pipeline.ConfiguredInstanceBase`1.StructureMap.Pipeline.IConfiguredInstance.Build(Type pluginType, BuildSession session, InstanceBuilder builder) at StructureMap.Pipeline.ConfiguredInstanceBase`1.build(Type …