private AppServerMetadata PrepareStatusMetadata(AppServerMetadata serverMetadata)
        {
            if (!StatusMetadataExtended)
                return serverMetadata;

            var additionalAttrs = this.GetType()
                            .GetCustomAttributes(typeof(StatusInfoAttribute), true)
                            .OfType<StatusInfoAttribute>()
                            .ToArray();

            if (additionalAttrs.Length == 0)
                return serverMetadata;

            var list = serverMetadata.StatusFields.ToList();
            list.AddRange(additionalAttrs);
            serverMetadata.StatusFields = list.ToArray();

            return serverMetadata;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ProcessAppServer" /> class.
        /// </summary>
        /// <param name="serverTypeName">Name of the server type.</param>
        /// <param name="serverMetadata">The server metadata.</param>
        public ProcessAppServer(string serverTypeName, AppServerMetadata serverMetadata)
            : base(serverTypeName, serverMetadata)
        {

        }
        /// <summary>
        /// Initializes a new instance of the <see cref="AppDomainAppServer" /> class.
        /// </summary>
        /// <param name="serverTypeName">Name of the server type.</param>
        /// <param name="serverMetadata">The server metadata.</param>
        public AppDomainAppServer(string serverTypeName, AppServerMetadata serverMetadata)
            : base(serverTypeName, serverMetadata)
        {

        }
 protected IsolationAppServer(string serverTypeName, AppServerMetadata serverMetadata)
 {
     State = ServerState.NotInitialized;
     ServerTypeName = serverTypeName;
     m_ServerMetadata = PrepareStatusMetadata(serverMetadata);
 }