public static string GetRosMessageType(this Type type) { RosMessageTypeAttribute rosMessageTypeAttribute = type.GetTypeInfo().GetCustomAttribute <RosMessageTypeAttribute>(); if (rosMessageTypeAttribute == null) { throw new RosMessageTypeAttributeMissingException(); } string rosMessageType = rosMessageTypeAttribute.RosMessageType; if (rosMessageType == null) { throw new RosMessageTypeNullException(); } if (string.IsNullOrWhiteSpace(rosMessageType)) { throw new RosMessageTypeEmptyException(); } return(rosMessageType); }
public string GetRosMessageTypeFromTypeAttribute(Type rosMessageType) { if (null == rosMessageType) { throw new ArgumentNullException(nameof(rosMessageType)); } object[] attributeCollection = rosMessageType.GetCustomAttributes(typeof(RosMessageTypeAttribute), false); RosMessageTypeAttribute rosMessageTypeAttribute = attributeCollection.FirstOrDefault() as RosMessageTypeAttribute; if (null == rosMessageTypeAttribute) { throw new RosMessageTypeAttributeNullException(); } if (string.Empty == rosMessageTypeAttribute.RosMessageType) { throw new RosMessageTypeAttributeEmptyException(); } return(rosMessageTypeAttribute.RosMessageType); }