Skip to content

Commit 56c2677

Browse files
LuukN2commonsensesoftware
authored andcommitted
Added null checks and removed GetPropertyType.
1 parent 35234f1 commit 56c2677

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

src/Common.OData.ApiExplorer/AspNet.OData/ClassProperty.cs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
struct ClassProperty
1313
{
14-
readonly Type type;
14+
internal readonly Type Type;
1515
internal readonly string Name;
1616

1717
internal ClassProperty( PropertyInfo clrProperty, Type propertyType )
@@ -20,14 +20,16 @@ internal ClassProperty( PropertyInfo clrProperty, Type propertyType )
2020
Contract.Requires( propertyType != null );
2121

2222
Name = clrProperty.Name;
23-
type = propertyType;
23+
Type = propertyType;
2424
Attributes = AttributesFromProperty( clrProperty );
2525
}
2626

2727
internal ClassProperty( IServiceProvider services, IEnumerable<Assembly> assemblies, IEdmOperationParameter parameter, IModelTypeBuilder typeBuilder )
2828
{
29+
Contract.Requires( services != null );
2930
Contract.Requires( assemblies != null );
3031
Contract.Requires( parameter != null );
32+
Contract.Requires( typeBuilder != null );
3133

3234
Name = parameter.Name;
3335
var context = new TypeSubstitutionContext( services, assemblies, typeBuilder );
@@ -38,26 +40,21 @@ internal ClassProperty( IServiceProvider services, IEnumerable<Assembly> assembl
3840
var elementType = collectionType.ElementType().Definition.GetClrType( assemblies );
3941
var substitutedType = elementType.SubstituteIfNecessary( context );
4042

41-
type = typeof( IEnumerable<> ).MakeGenericType( substitutedType );
43+
Type = typeof( IEnumerable<> ).MakeGenericType( substitutedType );
4244
}
4345
else
4446
{
4547
var parameterType = parameter.Type.Definition.GetClrType( assemblies );
4648

47-
type = parameterType.SubstituteIfNecessary( context );
49+
Type = parameterType.SubstituteIfNecessary( context );
4850
}
4951

5052
Attributes = AttributesFromOperationParameter( parameter );
5153
}
5254

5355
internal IEnumerable<CustomAttributeBuilder> Attributes { get; }
5456

55-
public override int GetHashCode() => ( Name.GetHashCode() * 397 ) ^ type.GetHashCode();
56-
57-
public Type GetPropertyType()
58-
{
59-
return type;
60-
}
57+
public override int GetHashCode() => ( Name.GetHashCode() * 397 ) ^ Type.GetHashCode();
6158

6259
static IEnumerable<CustomAttributeBuilder> AttributesFromProperty( PropertyInfo clrProperty )
6360
{

src/Common.OData.ApiExplorer/AspNet.OData/DefaultModelTypeBuilder.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ public Type NewStructuredType( IEdmStructuredType structuredType, Type clrType,
173173
/// <inheritdoc />
174174
public Type NewActionParameters( IServiceProvider services, IEdmAction action, ApiVersion apiVersion )
175175
{
176+
Arg.NotNull( services, nameof( services ) );
176177
Arg.NotNull( action, nameof( action ) );
177178
Arg.NotNull( apiVersion, nameof( apiVersion ) );
178179
Contract.Ensures( Contract.Result<Type>() != null );
@@ -202,7 +203,7 @@ TypeBuilder CreateTypeBuilderFromSignature( ClassSignature @class )
202203

203204
foreach ( var property in @class.Properties )
204205
{
205-
var type = property.GetPropertyType();
206+
var type = property.Type;
206207
var name = property.Name;
207208
var propertyBuilder = AddProperty( typeBuilder, type, name );
208209

0 commit comments

Comments
 (0)