Ejemplo n.º 1
0
        public unsafe string GetRaw()
        {
            string variable = Variable;

            if (variable == null)
            {
                throw new ArgumentNullException(nameof(variable));
            }

            Span <char>        stack  = stackalloc char[128];
            ValueStringBuilder buffer = new ValueStringBuilder(stack);

            uint returnValue;

            while ((returnValue = Raw.GetEnvironmentVariable(variable, buffer.RawChars)) > buffer.Capacity)
            {
                buffer.EnsureCapacity((int)returnValue);
            }

            if (returnValue == 0)
            {
                return(null);
            }

            buffer.Length = (int)returnValue;
            return(buffer.ToString());
        }