Esempio n. 1
0
        string TypeToString(ConvertTypeOptions options, TypeReference type, ICustomAttributeProvider typeAttributes = null)
        {
            var          envProvider = new ILSpyEnvironmentProvider();
            var          converter   = new CSharpToCppConverterVisitor(envProvider);
            var          astType     = AstBuilder.ConvertType(type, typeAttributes, options);
            StringWriter w           = new StringWriter();

            if (type.IsByReference)
            {
                w.Write("ByRef ");
                if (astType is NRefactory.CSharp.ComposedType && ((NRefactory.CSharp.ComposedType)astType).PointerRank > 0)
                {
                    ((NRefactory.CSharp.ComposedType)astType).PointerRank--;
                }
            }

            var cppAstType = astType.AcceptVisitor(converter, null);

            cppAstType.AcceptVisitor(new CppOutputVisitor(w, new CppFormattingOptions()), null);
            return(w.ToString());
        }
Esempio n. 2
0
        string TypeToString(ConvertTypeOptions options, TypeReference type, ICustomAttributeProvider typeAttributes = null)
        {
            var envProvider = new ILSpyEnvironmentProvider();
            var converter = new CSharpToCppConverterVisitor(envProvider);
            var astType = AstBuilder.ConvertType(type, typeAttributes, options);
            StringWriter w = new StringWriter();

            if (type.IsByReference)
            {
                w.Write("ByRef ");
                if (astType is NRefactory.CSharp.ComposedType && ((NRefactory.CSharp.ComposedType)astType).PointerRank > 0)
                    ((NRefactory.CSharp.ComposedType)astType).PointerRank--;
            }

            var cppAstType = astType.AcceptVisitor(converter, null);

            cppAstType.AcceptVisitor(new CppOutputVisitor(w, new CppFormattingOptions()), null);
            return w.ToString();
        }