我正在尝试将域事件引入项目中.这个概念在Udi Dahan的帖子中描述 - http://www.udidahan.com/2009/06/14/domain-events-salvation/
这是域事件代码
public interface IDomainEvent { }
public interface IHandleDomainEvents<T> where T : IDomainEvent
{
void Handle(T args);
}
public interface IEventDispatcher
{
void Dispatch<TEvent>(TEvent eventToDispatch) where TEvent : IDomainEvent;
}
public static class DomainEvents
{
public static IEventDispatcher Dispatcher { get; set; }
public static void Raise<TEvent>(TEvent eventToRaise) where TEvent : IDomainEvent
{
Dispatcher.Dispatch(eventToRaise);
}
}
Run Code Online (Sandbox Code Playgroud)
最重要的部分是IEventDispatcher实现,它将域事件与引发事件时发生的任何事件分离开来.诀窍是通过容器连接这个耦合.这是我的尝试
注册所有域事件处理程序的代码....
var asm = Assembly.GetExecutingAssembly();
var handlerType = typeof(IHandleDomainEvents<>);
builder.RegisterAssemblyTypes(asm)
.Where(t => handlerType.IsAssignableFrom(t)
&& t.IsClass
&& !t.IsAbstract)
.AsClosedTypesOf(handlerType)
.InstancePerLifetimeScope(); …
Run Code Online (Sandbox Code Playgroud) 所以默认的MVC应用程序有以下css(在Site.css中) -
/* Styles for editor and display helpers
----------------------------------------------------------*/
.display-label,
.editor-label
{
margin: 1em 0 0 0;
}
.display-field,
.editor-field
{
margin:0.5em 0 0 0;
}
.text-box
{
width: 30em;
}
.text-box.multi-line
{
height: 6.5em;
}
.tri-state
{
width: 6em;
}
Run Code Online (Sandbox Code Playgroud)
需要进行哪些更改?谢谢
我想在Autofac中执行以下操作,但不确定如何操作?
这是你在StructureMap中的方法
ForRequestedType<IPrincipal>()
.CacheBy(InstanceScope.Hybrid)
.TheDefault.Is.ConstructedBy(ctx => HttpContext.Current.User);
Run Code Online (Sandbox Code Playgroud)