예제 #1
0
        private PropertyDeclarationSyntax CreateProperty()
        {
            var getAccessor = _property.GetAccessor();

            var newGetAccessor = getAccessor
                                 .WithTrailingTrivia()
                                 .WithBody(FieldName.ToIdentifierName().ToReturnStatement().ToBlock())
                                 .WithSemicolonToken(default(SyntaxToken));

            var newAccessors = _property.AccessorList
                               .F(n => n.ReplaceNode(getAccessor, newGetAccessor))
                               .F(n => n.RemoveNode(n.SetAccessor(), KeepNoTrivia))
                               .Nicefy();

            return(_property.ReplaceNode(_property.AccessorList, newAccessors));
        }
예제 #2
0
        private static bool CanHandle(PropertyDeclarationSyntax property)
        {
            Contract.Requires(property != null);

            var getAccessor = property.GetAccessor();
            var setAccessor = property.SetAccessor();

            var isFullAuto = (getAccessor != null &&
                              getAccessor.Body != null &&
                              setAccessor != null &&
                              setAccessor.Body != null);

            var isAutoSet = (getAccessor != null &&
                             getAccessor.Body == null &&
                             setAccessor == null);

            return(isFullAuto || isAutoSet);
        }
 public static AccessorDeclarationSyntax GetSetAccessor(this PropertyDeclarationSyntax property) =>
 property?.GetAccessor(SyntaxKind.SetAccessorDeclaration);