Improved support for Nullable<T> and dynamic parameters (#96)
This commit is contained in:
committed by
Ben Adams
parent
1b99d61cf3
commit
1ca8f79a36
@@ -563,6 +563,7 @@ namespace System.Diagnostics
|
||||
Prefix = prefix,
|
||||
Name = parameter.Name,
|
||||
ResolvedType = parameterType,
|
||||
IsDynamicType = parameter.IsDefined(typeof(DynamicAttribute), false)
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace System.Diagnostics
|
||||
public Type ResolvedType { get; set; }
|
||||
|
||||
public string Prefix { get; set; }
|
||||
public bool IsDynamicType { get; set; }
|
||||
|
||||
public override string ToString() => Append(new StringBuilder()).ToString();
|
||||
|
||||
@@ -23,7 +24,11 @@ namespace System.Diagnostics
|
||||
.Append(" ");
|
||||
}
|
||||
|
||||
if (ResolvedType != null)
|
||||
if (IsDynamicType)
|
||||
{
|
||||
sb.Append("dynamic");
|
||||
}
|
||||
else if (ResolvedType != null)
|
||||
{
|
||||
AppendTypeName(sb);
|
||||
}
|
||||
|
||||
@@ -69,8 +69,17 @@ namespace System.Diagnostics
|
||||
{
|
||||
if (type.IsGenericType)
|
||||
{
|
||||
var genericArguments = type.GetGenericArguments();
|
||||
ProcessGenericType(builder, type, genericArguments, genericArguments.Length, options);
|
||||
var underlyingType = Nullable.GetUnderlyingType(type);
|
||||
if (underlyingType != null)
|
||||
{
|
||||
ProcessType(builder, underlyingType, options);
|
||||
builder.Append('?');
|
||||
}
|
||||
else
|
||||
{
|
||||
var genericArguments = type.GetGenericArguments();
|
||||
ProcessGenericType(builder, type, genericArguments, genericArguments.Length, options);
|
||||
}
|
||||
}
|
||||
else if (type.IsArray)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user