private string GetUnicodeUsingOS(string ascii) { uint dwFlags = (this.AllowUnassigned ? 1U : 0U) | (this.UseStd3AsciiRules ? 2U : 0U); int num = IdnMapping.IdnToUnicode(dwFlags, ascii, ascii.Length, null, 0); if (num == 0) { int lastWin32Error = Marshal.GetLastWin32Error(); if (lastWin32Error == 123) { throw new ArgumentException(Environment.GetResourceString("Argument_IdnIllegalName"), "ascii"); } throw new ArgumentException(Environment.GetResourceString("Argument_IdnBadPunycode"), "ascii"); } else { char[] array = new char[num]; num = IdnMapping.IdnToUnicode(dwFlags, ascii, ascii.Length, array, num); if (num != 0) { return(new string(array, 0, num)); } int lastWin32Error = Marshal.GetLastWin32Error(); if (lastWin32Error == 123) { throw new ArgumentException(Environment.GetResourceString("Argument_IdnIllegalName"), "ascii"); } throw new ArgumentException(Environment.GetResourceString("Argument_IdnBadPunycode"), "ascii"); } }
private string GetUnicodeUsingOS(string ascii) { int num = (this.AllowUnassigned ? 1 : 0) | (this.UseStd3AsciiRules ? 2 : 0); string lpASCIICharStr1 = ascii; int length1 = lpASCIICharStr1.Length; // ISSUE: variable of the null type __Null local = null; int cchUnicodeChar1 = 0; int unicode1 = IdnMapping.IdnToUnicode((uint)num, lpASCIICharStr1, length1, (char[])local, cchUnicodeChar1); if (unicode1 == 0) { if (Marshal.GetLastWin32Error() == 123) { throw new ArgumentException(Environment.GetResourceString("Argument_IdnIllegalName"), "ascii"); } throw new ArgumentException(Environment.GetResourceString("Argument_IdnBadPunycode"), "ascii"); } char[] chArray = new char[unicode1]; string lpASCIICharStr2 = ascii; int length2 = lpASCIICharStr2.Length; char[] lpUnicodeCharStr = chArray; int cchUnicodeChar2 = unicode1; int unicode2 = IdnMapping.IdnToUnicode((uint)num, lpASCIICharStr2, length2, lpUnicodeCharStr, cchUnicodeChar2); if (unicode2 != 0) { return(new string(chArray, 0, unicode2)); } if (Marshal.GetLastWin32Error() == 123) { throw new ArgumentException(Environment.GetResourceString("Argument_IdnIllegalName"), "ascii"); } throw new ArgumentException(Environment.GetResourceString("Argument_IdnBadPunycode"), "ascii"); }