Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Create() [4/4]

NullabilityInfo System.Reflection.NullabilityInfoContext.Create ( PropertyInfo propertyInfo)
inline

Definition at line 136 of file NullabilityInfoContext.cs.

137 {
138 if ((object)propertyInfo == null)
139 {
140 throw new ArgumentNullException("propertyInfo");
141 }
143 NullabilityInfo nullabilityInfo = GetNullabilityInfo(propertyInfo, propertyInfo.PropertyType, propertyInfo.GetCustomAttributesData());
144 MethodInfo getMethod = propertyInfo.GetGetMethod(nonPublic: true);
145 MethodInfo setMethod = propertyInfo.GetSetMethod(nonPublic: true);
146 if (getMethod != null)
147 {
149 {
150 nullabilityInfo.ReadState = NullabilityState.Unknown;
151 }
152 CheckNullabilityAttributes(nullabilityInfo, getMethod.ReturnParameter.GetCustomAttributesData());
153 }
154 else
155 {
156 nullabilityInfo.ReadState = NullabilityState.Unknown;
157 }
158 if (setMethod != null)
159 {
161 {
162 nullabilityInfo.WriteState = NullabilityState.Unknown;
163 }
164 CheckNullabilityAttributes(nullabilityInfo, setMethod.GetParameters()[0].GetCustomAttributesData());
165 }
166 else
167 {
168 nullabilityInfo.WriteState = NullabilityState.Unknown;
169 }
170 return nullabilityInfo;
171 }
NullabilityInfo GetNullabilityInfo(MemberInfo memberInfo, Type type, IList< CustomAttributeData > customAttributes)
bool IsPrivateOrInternalMethodAndAnnotationDisabled(MethodInfo method)
void CheckNullabilityAttributes(NullabilityInfo nullability, IList< CustomAttributeData > attributes)

References System.Reflection.NullabilityInfoContext.CheckNullabilityAttributes(), System.Reflection.NullabilityInfoContext.EnsureIsSupported(), System.Reflection.MemberInfo.GetCustomAttributesData(), System.Reflection.PropertyInfo.GetGetMethod(), System.Reflection.NullabilityInfoContext.GetNullabilityInfo(), System.Reflection.PropertyInfo.GetSetMethod(), System.Reflection.NullabilityInfoContext.IsPrivateOrInternalMethodAndAnnotationDisabled(), and System.Reflection.PropertyInfo.PropertyType.