File: System\Runtime\NameGenerator.cs
Project: ndp\cdf\src\System.ServiceModel.Internals\System.ServiceModel.Internals.csproj (System.ServiceModel.Internals)
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
 
namespace System.Runtime
{
    using System;
    using System.Globalization;
    using System.Threading;
 
    class NameGenerator
    {
 
        static NameGenerator nameGenerator = new NameGenerator();
        long id;
        string prefix;
 
        NameGenerator()
        {
            this.prefix = string.Concat("_", Guid.NewGuid().ToString().Replace('-', '_'), "_");
        }
 
        public static string Next()
        {
            long nextId = Interlocked.Increment(ref nameGenerator.id);
            return nameGenerator.prefix + nextId.ToString(CultureInfo.InvariantCulture);
        }
    }
}