J'essaie de mettre en œuvre le modèle d'agrégateur d'événements de manière simple pour l'apprendre étape par étape. Mais je n'ai trouvé aucun livre ou didacticiel vidéo parlant de son implémentation.
Je viens de trouver quelques bons articles tels que ce http://weblogs.asp.net/rashid/archive/2009/03/05/use-event-aggregator-to-make-your-application-more-extensible.aspx et http://martinfowler.com/eaaDev/EventAggregator.html le premier article est trop grand pour me permettre de comprendre le motif et le second n'est pas terminé :).
Par la façon dont je crée mes classes:Essayer de comprendre le modèle d'agrégateur d'événements
public class Member
{
public int ID { get; set; }
public string UserName { get; set; }
}
public class MemberService
{
public void CommentSubmited()
{
// increase member score and do some other logic.
}
}
public class Comment
{
public int ID { get; set; }
public string CommentBody { get; set; }
public Member ByMember { get; set; }
}
public class CommentService
{
public void SubmitNewComment(Member member, string commentBody, EventAggregator eventAggregator)
{
Comment comment = new Comment();
comment.ByMember = member;
comment.CommentBody = commentBody;
db.SaveComment(comment); // save comment to the db
//eventAggregator.GetEvent<CommentSubmited>.Fire();
}
}
public class EventAggregator
{
public void RegisterEvent()
{
}
public void RemoveEvent()
{
}
}
Et ce que je veux est de créer une manière générique de sorte que lorsque jamais un nouveau commentaire créé la méthode CommentSubmited()
au feu.
Je le veux générique car il y aura plus de services plus tard, comme RateService, QuestionService, .... et chacun aura une méthode XXXSubmited()
dans la classe MemberService.
J'espère que vous avez compris ce que je veux apprendre, demandez-moi si vous voulez que je clarifie les choses.
Remarque J'ai vérifié le Generic Delegates topic et pensé qu'il peut me aider dans cette question, mais n'a pas pu le faire comme je voulais.
l'article est sympa, mais je ne peux pas imaginer à quoi ressemblera l'ISubject et le sujet, il ne les a pas écrits dans son exemple. –
Dans le cas où quelqu'un trébuche ici, Amr posté sur trouver ISubject et quelqu'un a fait remarquer qu'ils sont dans Reactive Extensions: http://stackoverflow.com/questions/3439419/how-isubject-and-subject-will-look-like- Dans-cet-échantillon-et-sont-le-sample-using-t – JohnMetta