view Implab.ServiceHost/Unity/NestedTypeReference.cs @ 278:6691aff01de1 v3

Implab: added XmlDefaultSeializer (SerializersPool is now obsolete) Implab.ServiceHost: rewritten TypeReference (added support for nested types), stable API
author cin
date Thu, 03 May 2018 09:59:44 +0300
parents
children
line wrap: on
line source

using System;
using System.Text;

namespace Implab.ServiceHost.Unity {
    public class NestedTypeReference : TypeReference {

        readonly string m_name;

        readonly int m_genericParametersCount;

        public TypeReference DeclaringType { get; private set; }

        public override string Name {
            get {
                return m_name;
            }
        }

        public override string Namespace {
            get {
                return DeclaringType.Namespace;
            }
        }

        public override int GenericParametersCount {
            get {
                return m_genericParametersCount;
            }
        }

        internal NestedTypeReference(TypeReference declaringType, string name, int parametersCount) {
            DeclaringType = declaringType;
            m_name = name;
            m_genericParametersCount = parametersCount;
        }

        internal override void Visit(TypeResolutionContext visitor) {
            visitor.Visit(this);
        }

        internal override void WriteTypeName(StringBuilder builder) {
            builder
                .Append(DeclaringType)
                .Append('+')
                .Append(Name);
        }
    }
}