protected ServiceGroupMemberDescription ParseMemberDescription(Hashtable memberDescriptionHashtable)
            {
                ServiceGroupMemberDescription serviceGroupMemberDescription;

                if (!memberDescriptionHashtable.ContainsKey(Constants.ServiceNamePropertyName) ||
                    !memberDescriptionHashtable.ContainsKey(Constants.ServiceTypeNamePropertyName))
                {
                    throw new ArgumentException(StringResources.Error_InvalidMemberDescriptionSpecification);
                }

                serviceGroupMemberDescription = new ServiceGroupMemberDescription()
                {
                    ServiceName     = new Uri((string)memberDescriptionHashtable[Constants.ServiceNamePropertyName]),
                    ServiceTypeName = (string)memberDescriptionHashtable[Constants.ServiceTypeNamePropertyName]
                };

                if (memberDescriptionHashtable.ContainsKey(Constants.LoadMetricsPropertyName))
                {
                    if (this.IsStateful)
                    {
                        serviceGroupMemberDescription.Metrics.Add(ServiceCmdletBase.ParseStatefulMetric((string)memberDescriptionHashtable[Constants.LoadMetricsPropertyName]));
                    }
                    else
                    {
                        serviceGroupMemberDescription.Metrics.Add(ServiceCmdletBase.ParseStatelessMetric((string)memberDescriptionHashtable[Constants.LoadMetricsPropertyName]));
                    }
                }

                return(serviceGroupMemberDescription);
            }
        private static ServiceGroupMemberDescription CreateServiceGroupMemberDescription(Uri serviceGroupName, int index, int metricCount, bool isStateful)
        {
            ServiceGroupMemberDescription description = new ServiceGroupMemberDescription
            {
                ServiceName        = new Uri(serviceGroupName.ToString() + index),
                ServiceTypeName    = "MemberType" + index,
                InitializationData = index == 0 ? null : new byte[10 * index]
            };

            for (int i = 0; i < metricCount; i++)
            {
                description.Metrics.Add(CreateServiceLoadMetricDescription(i, isStateful));
            }

            return(description);
        }