Example #1
0
        public static CodeTypeMember CreateImplicitConversionOperator(this INamedTypeSymbol wrappedTypeSymbol, string classTypeName)
        {
            List<string> namespaces = new List<string>();
            CodeTypeReference fullTypeReference = wrappedTypeSymbol.GetTypeReference(namespaces);

            CodeTypeReferenceExpression fullTypeReferenceExpression =
                new CodeTypeReferenceExpression(fullTypeReference);

            string wrappedTypeSymbolFullName = fullTypeReferenceExpression.ToCode();

            string wrappedTypeVariableName = wrappedTypeSymbol.Name.GetWrappedObjectFieldName();

            string str = @"        public static implicit operator " + wrappedTypeSymbolFullName + @" (" + classTypeName + @" objectToConvert)
                                   {
                                       return objectToConvert." + wrappedTypeVariableName + @";
                                   }
                         ";

            CodeSnippetTypeMember codeSnippet = new CodeSnippetTypeMember(str);
            return codeSnippet;
        }