示例#1
0
        public AnonymousTypeNewingTranslation(NewExpression newing, ITranslationContext context)
            : base(newing, context)
        {
            Type      = newing.Type;
            _typeName = context.Settings.AnonymousTypeNameFactory?.Invoke(Type) ?? string.Empty;

            var ctorParameters     = newing.Constructor.GetParameters();
            var ctorParameterCount = ctorParameters.Length;

            var initializers    = new ITranslation[ctorParameterCount];
            var translationSize = _typeName.Length + "new ".Length;

            for (var i = 0; ;)
            {
                initializers[i] = new AnonymousTypeInitializerTranslation(
                    ctorParameters[i],
                    Parameters[i]);

                ++i;

                if (i == ctorParameterCount)
                {
                    break;
                }
            }

            _initializers = new AnonymousTypeInitializerTranslationSet(initializers, context);

            TranslationSize = translationSize + _initializers.TranslationSize;

            FormattingSize =
                context.GetKeywordFormattingSize() + // <- For 'new'
                _initializers.FormattingSize;
        }
 public BindingsTranslation(
     IInitializerSetTranslation parent,
     string subjectName,
     IInitializerSetTranslation initializerSetTranslation)
 {
     _parent      = parent;
     _subjectName = subjectName;
     _initializerSetTranslation = initializerSetTranslation;
     TranslationSize            = subjectName.Length + 2 + initializerSetTranslation.TranslationSize;
 }
 protected InitialisationTranslationBase(
     ExpressionType initType,
     ITranslation newingTranslation,
     IInitializerSetTranslation initializerTranslations)
 {
     NodeType                 = initType;
     _newingTranslation       = newingTranslation;
     _initializerTranslations = initializerTranslations;
     TranslationSize          = newingTranslation.TranslationSize + initializerTranslations.TranslationSize;
     FormattingSize           = newingTranslation.FormattingSize + initializerTranslations.FormattingSize;
 }
 protected InitialisationTranslationBase(
     ExpressionType initType,
     NewExpression newing,
     IInitializerSetTranslation initializerTranslations,
     ITranslationContext context)
     : this(
         initType,
         NewingTranslation.For(newing, context, omitParenthesesIfParameterless : initializerTranslations.Count != 0),
         initializerTranslations)
 {
 }