1
問題:用戶通過某個域中的某個實體進行操作。最後一個更改其狀態,以便用戶反覆接收e-mail notifications
(使用smtp服務器),直到給定的時間。
所以我需要以某種方式觸發一個事件。ASP.NET MVC中的計時器事件
有什麼替代方法可以做到這一點?我知道ASP.NET MVC
框架中沒有任何事件。
謝謝!
問題:用戶通過某個域中的某個實體進行操作。最後一個更改其狀態,以便用戶反覆接收e-mail notifications
(使用smtp服務器),直到給定的時間。
所以我需要以某種方式觸發一個事件。ASP.NET MVC中的計時器事件
有什麼替代方法可以做到這一點?我知道ASP.NET MVC
框架中沒有任何事件。
謝謝!
你可以用我的反轉已經內置支持過程中的域中的事件控制容器:
訂閱
訂閱是容易的。簡單地讓任何類實現IHandlerOf:
[Component]
public class ReplyEmailNotification : IHandlerOf<ReplyPosted>
{
ISmtpClient _client;
IUserQueries _userQueries;
public ReplyEmailNotification(ISmtpClient client, IUserQueries userQueries)
{
_client = client;
_userQueries = userQueries;
}
public void Invoke(ReplyPosted e)
{
var user = _userQueries.Get(e.PosterId);
_client.Send(new MailMessage(user.Email, "bla bla"));
}
}
調度
域事件中所使用的DomainEvent類調度。實際的域名事件可以是任何類別,沒有任何限制。不過,我建議你把它們當作DTO的。
public class UserCreated
{
public UserCreated(string id, string displayName)
{
}
}
public class UserService
{
public void Create(string displayName)
{
//create user
// [...]
// fire the event.
DomainEvent.Publish(new UserCreated(user.Id, user.DisplayName));
}
}
的代碼是從我的文章:http://www.codeproject.com/Articles/440665/Having-fun-with-Griffin-Container
ASP.NET MVC3安裝:
install-package griffin.container.mvc3
*我知道ASP.NET MVC中沒有事件* - 說什麼? – balexandre
我不明白你的評論? – lexeme