System.Security.PolicyManager.MakeEvidenceArray C# (CSharp) Method

MakeEvidenceArray() static private method

static private MakeEvidenceArray ( Evidence evidence, bool verbose ) : char[]
evidence System.Security.Policy.Evidence
verbose bool
return char[]
        internal static char[] MakeEvidenceArray (Evidence evidence, bool verbose) {
            // We only support caching on our built-in evidence types (excluding hash b/c it would
            // make our caching scheme just match up the same assembly from the same location which
            // doesn't gain us anything).

            IEnumerator enumerator = evidence.GetEnumerator();
            int requiredLength = 0;

            while (enumerator.MoveNext())
            {
                IBuiltInEvidence obj = enumerator.Current as IBuiltInEvidence;

                if (obj == null)
                    return null;

                requiredLength += obj.GetRequiredSize(verbose);
            }

            enumerator.Reset();
            
            char[] buffer = new char[requiredLength];

            int position = 0;

            while (enumerator.MoveNext())
            {
                position = ((IBuiltInEvidence)enumerator.Current).OutputToBuffer(buffer, position, verbose);
            }

            return buffer;
        }