/// <summary>
        ///
        /// </summary>
        /// <param name="translationUnit"></param>
        /// <param name="signature"></param>
        /// <returns></returns>
        public static MethodSignatureDeclarationTranslationUnit AddSignature(this InterfaceDeclarationTranslationUnit translationUnit, string signature)
        {
            var methodSignatureDeclaration = MethodSignatureDeclarationTranslationUnit.Create(VisibilityToken.Public, null, IdentifierTranslationUnit.Create(signature));

            translationUnit.AddSignature(methodSignatureDeclaration);
            return(methodSignatureDeclaration);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="modifiers"></param>
        /// <param name="returnType"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static ITranslationUnit BuildMethodSignatureTranslationUnit(ModifierTokens modifiers, string returnType, string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            return(MethodSignatureDeclarationTranslationUnit.Create(
                       modifiers, returnType == null ? null : TypeIdentifierTranslationUnit.Create(returnType),
                       IdentifierTranslationUnit.Create(name)));
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="node"></param>
        /// <remarks>
        /// We don't need to go further deeper in the tree by visiting the node.
        /// </remarks>
        public override void VisitMethodDeclaration(MethodDeclarationSyntax node)
        {
            // TODO: Use translation unit factories

            var helper = new MethodDeclaration(node, this.semanticModel);

            // Properties in TypeScript will be translated as methods as
            // TypeScript does not support properties in interfaces
            var translationUnit = MethodSignatureDeclarationTranslationUnit.Create(
                helper.Visibility, TypeIdentifierTranslationUnit.Create(helper.ReturnType.Name), IdentifierTranslationUnit.Create(helper.Name));

            this.interfaceDeclaration.AddSignature(translationUnit);

            this.InvokePropertyDeclarationVisited(this, new WalkerEventArgs());
        }