private string GeneratePrefix(string ns, XmlDictionaryString xNs)
{
if (_writeState != WriteState.Element && _writeState != WriteState.Attribute)
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.Format(SR.XmlInvalidPrefixState, WriteState.ToString())));
string prefix = _nsMgr.AddNamespace(ns, xNs);
if (prefix != null)
return prefix;
while (true)
{
int prefixId = _elements[_depth].PrefixId++;
prefix = string.Concat("d", _depth.ToString(CultureInfo.InvariantCulture), "p", prefixId.ToString(CultureInfo.InvariantCulture));
if (_nsMgr.LookupNamespace(prefix) == null)
{
_nsMgr.AddNamespace(prefix, ns, xNs);
return prefix;
}
}
}