MassTransit aracılığıyla yayınlamaya çalıştığım iletilerle temel yazım sorunuyla karşılaşıyorum. bakılmaksızın beton türlerinden, bu koleksiyonun dışında herhangi olayları almak OLMAYANMassTransit iletisi yanlış yazıyor
public void PublishEvents(IEnumerable<Event> events) {
foreach (var e in events) {
Bus.Instance.Publish(e);
}
}
: Ben böyle bir şeyle soyut olayların bir koleksiyon yayınlamak istediğinizde, Ancak
[Serializable]
public abstract class Event : CorrelatedBy<Guid> {
public Guid CorrelationId { get; set; }
public abstract string EventName { get; }
public override string ToString() {
return string.Format("{0} - {1}", EventName, CorrelationId);
}
}
[Serializable]
public class PersonCreated : Event {
public PersonCreated(Guid personId, string firstName, string lastName) {
PersonId = personId;
FirstName = firstName;
LastName = lastName;
}
public readonly Guid PersonId;
public readonly string FirstName;
public readonly string LastName;
}
: Aşağıdaki düşünün . Etkinliği otobüste yayınlamadan önce uygun beton türüne gönderirseniz, mesajı doğru şekilde alırım.
Soyut koleksiyonumun her birini oluşturmadan işlenmesini sağlamak için bunu nasıl düzeltebileceğime dair herhangi bir fikir var mı?
DÜZENLEME: Ben şöyle BinarySerialization kullanmak benim ayarlarını değiştirmek için çalıştılar:
Bus.Initialize(sbc =>
{
sbc.UseBinarySerializer();
});
ve herhangi bir davranış değişikliği verime sahip değildir. Consumes<PersonCreated>
sınıfımı aramam için kullanabileceğim tek yol, bir olayı açıkça PersonCreated
türüne yayınlamaktır.
Ahh .. Bu sorunun tartışma listesini bugün tarıyordum ve bunun burada görebileceği gibi, yayınlamak için harika bir yer olduğunu düşündüm. Ben –
çapraz göndereceğiz Biz, MT geliştiriciler, SO post görmeden önce e-postayı göreceğiz. Sorulara oldukça duyarlı olmaya çalışıyoruz. – Travis
Sorunu, BinarySerializer –