示例#1
0
        /// <summary>
        ///     Fills the settings.
        /// </summary>
        /// <param name="client">The client.</param>
        /// <param name="property">The property.</param>
        public void Configure(INetClient client, PropertyInfo property)
        {
            if (BaseUri == null)
            {
                BaseUri = property.GetCustomAttributes <BaseUriAttribute>(true)?.FirstOrDefault()?.BaseUri;
            }

            if (BaseUri == null)
            {
                BaseUri = client.GetType().GetCustomAttributes <BaseUriAttribute>(true)?.FirstOrDefault()?.BaseUri;
            }

            if (SerializerSettings == null)
            {
                SerializerSettings = property.GetCustomAttributes <SerializerSettingsAttribute>(true)?.FirstOrDefault()?.SerializerSettings;
            }

            if (SerializerSettings == null)
            {
                SerializerSettings = client.GetType().GetCustomAttributes <SerializerSettingsAttribute>(true)?.FirstOrDefault()?.SerializerSettings;
            }

            var routes = property.GetCustomAttributes <RouteAttribute>(true)?.Select(attribute => attribute.Route);

            if (routes != null)
            {
                foreach (var route in routes)
                {
                    Routes.Add(route);
                }
            }
        }