|
4 | 4 | using System.Linq.Expressions; |
5 | 5 | using System.Reflection; |
6 | 6 | using JSONAPI.Attributes; |
7 | | -using JSONAPI.Configuration; |
8 | 7 | using JSONAPI.Extensions; |
9 | 8 | using Newtonsoft.Json; |
10 | 9 |
|
@@ -165,17 +164,23 @@ protected virtual ResourceTypeField CreateResourceTypeField(PropertyInfo prop) |
165 | 164 | } |
166 | 165 |
|
167 | 166 | var selfLinkTemplateAttribute = prop.GetCustomAttributes().OfType<RelationshipLinkTemplate>().FirstOrDefault(); |
168 | | - var selfLinkTemplate = selfLinkTemplateAttribute == null ? null : selfLinkTemplateAttribute.TemplateString; |
| 167 | + var selfLinkTemplate = selfLinkTemplateAttribute?.TemplateString; |
169 | 168 | var relatedResourceLinkTemplateAttribute = prop.GetCustomAttributes().OfType<RelatedResourceLinkTemplate>().FirstOrDefault(); |
170 | | - var relatedResourceLinkTemplate = relatedResourceLinkTemplateAttribute == null ? null : relatedResourceLinkTemplateAttribute.TemplateString; |
| 169 | + var relatedResourceLinkTemplate = relatedResourceLinkTemplateAttribute?.TemplateString; |
171 | 170 |
|
172 | 171 | var isToMany = |
173 | 172 | type.IsArray || |
174 | 173 | (type.GetInterfaces().Contains(typeof(System.Collections.IEnumerable)) && type.IsGenericType); |
175 | 174 |
|
176 | | - if (!isToMany) return new ToOneResourceTypeRelationship(prop, jsonKey, type, selfLinkTemplate, relatedResourceLinkTemplate); |
| 175 | + var linkSettingsAttribute = prop.GetCustomAttributes().OfType<LinkSettingsAttribute>().FirstOrDefault(); |
| 176 | + var serializeRelationshipLink = linkSettingsAttribute == null || linkSettingsAttribute.SerializeRelationshipLink; |
| 177 | + var serializeRelatedResourceLink = linkSettingsAttribute == null || linkSettingsAttribute.SerializeRelatedResourceLink; |
| 178 | + |
| 179 | + if (!isToMany) return new ToOneResourceTypeRelationship(prop, jsonKey, type, selfLinkTemplate, relatedResourceLinkTemplate, |
| 180 | + serializeRelationshipLink, serializeRelatedResourceLink); |
177 | 181 | var relatedType = type.IsGenericType ? type.GetGenericArguments()[0] : type.GetElementType(); |
178 | | - return new ToManyResourceTypeRelationship(prop, jsonKey, relatedType, selfLinkTemplate, relatedResourceLinkTemplate); |
| 182 | + return new ToManyResourceTypeRelationship(prop, jsonKey, relatedType, selfLinkTemplate, relatedResourceLinkTemplate, |
| 183 | + serializeRelationshipLink, serializeRelatedResourceLink); |
179 | 184 | } |
180 | 185 |
|
181 | 186 | /// <summary> |
|
0 commit comments