SpecializedTypeReference.cs
51 lines
| 1.5 KiB
| text/x-csharp
|
CSharpLexer
cin
|
r278 | using System; | |
using System.Linq; | |||
using System.Text; | |||
namespace Implab.ServiceHost.Unity { | |||
public class SpecializedTypeReference : TypeReference { | |||
public override string Name { | |||
get { | |||
return GenericType.Name; | |||
} | |||
} | |||
public override string Namespace { | |||
get { | |||
return GenericType.Namespace; | |||
} | |||
} | |||
public override int GenericParametersCount { | |||
get { | |||
return GenericParameters.Length; | |||
} | |||
} | |||
public TypeReference GenericType { get; private set; } | |||
public TypeReference[] GenericParameters { get; private set; } | |||
internal SpecializedTypeReference(TypeReference genericType, TypeReference[] genericParameters) { | |||
GenericType = genericType; | |||
GenericParameters = genericParameters; | |||
} | |||
internal override void Visit(TypeResolutionContext visitor) { | |||
visitor.Visit(this); | |||
} | |||
internal override void WriteTypeName(StringBuilder builder) { | |||
GenericType.WriteTypeName(builder); | |||
} | |||
internal override void WriteTypeParams(StringBuilder builder) { | |||
builder.Append('{'); | |||
for (var i = 0; i < GenericParameters.Length; i++) { | |||
if (i > 0) | |||
builder.Append(','); | |||
builder.Append(GenericParameters[i]); | |||
} | |||
builder.Append('}'); | |||
} | |||
} | |||
} |