private string guidToName(string src)
{
Regex reg1 = new Regex("cad[0-9a-f]{5}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}");
Regex reg2 = new Regex("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}");
string str = src;
while (true)
{
if (reg1.IsMatch(str))
{
string oldStr=reg1.Match(str).ToString();
string newStr =session.GetAttributeType(new Guid(reg1.Match(str).ToString())).Name;
str.Replace(oldStr, newStr);
}
else if (reg2.IsMatch(str))
str.Replace(reg2.Match(str).ToString(), session.GetObject(new Guid(reg2.Match(str).ToString())).Caption);
else break;
}
return str;
}
на входе - строка, которая может содержать гуид коды
на выходе - строка с замененными гуидами на заголовки
и вроде все норм, и в цикл заходит, и первое условие выполняет, как доходит дело до реплэйса, тут херня какая-то, по идее должен заменить гуид на название и дальше двигать, но в строке как содержался гуид, так она там и сидит, и получается бесконечный цикл