示例#1
0
        public static CachedOutput CreateType(CorValue value, CorClass cls, TypePrinterFlags flags)
        {
            var valueOutput = CreateType(new TypeOutput(), value, flags);

            if (cls == null || value == null)
            {
                return(valueOutput.cachedOutput);
            }

            var typeOutput = value.WriteType(new TypeOutput(), cls, flags);

            return(CreateTypeInternal(valueOutput, typeOutput));
        }
示例#2
0
        public static CachedOutput CreateType(CorValue value, TypeSig ts, IList <CorType> typeArgs, IList <CorType> methodArgs, TypePrinterFlags flags)
        {
            if (value == null && ts != null)
            {
                return(TypePrinterUtils.Write(new TypeOutput(), ts, flags, typeArgs, methodArgs).cachedOutput);
            }
            var valueOutput = CreateType(new TypeOutput(), value, flags);

            if (ts == null || value == null)
            {
                return(valueOutput.cachedOutput);
            }

            ts = ts.RemovePinnedAndModifiers() ?? ts;
            if (ts is ByRefSig)
            {
                ts = ts.Next ?? ts;
            }

            var typeOutput = value.WriteType(new TypeOutput(), ts, typeArgs, methodArgs, flags);

            return(CreateTypeInternal(valueOutput, typeOutput));
        }
示例#3
0
 public void WriteType(ISyntaxHighlightOutput output, IDebuggerClass cls, TypeFormatFlags flags)
 {
     debugger.Dispatcher.UI(() => value.WriteType(new OutputConverter(output), ((DebuggerClass)cls).CorClass, (TypePrinterFlags)flags));
 }