internal List<DataBusPropertyInfo> GetDataBusProperties(object message)
{
return cache.GetOrAdd(message.GetType(), messageType =>
{
var properties = new List<DataBusPropertyInfo>();
// ReSharper disable once LoopCanBeConvertedToQuery
foreach (var propertyInfo in messageType.GetProperties())
{
if (IsDataBusProperty(propertyInfo))
{
properties.Add(new DataBusPropertyInfo
{
Name = propertyInfo.Name,
Getter = DelegateFactory.CreateGet(propertyInfo),
Setter = DelegateFactory.CreateSet(propertyInfo)
});
}
}
return properties;
});
}