Exemplo n.º 1
0
        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);
        }