/LinqToCodedomProject/LinqToCodedom/Generator/Statements/using.cs
# · C# · 64 lines · 58 code · 6 blank · 0 comment · 0 complexity · d32124234eee633ef1688338fcc98cee MD5 · raw file
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Linq.Expressions;
- using System.CodeDom;
- using LinqToCodedom.Visitors;
- using LinqToCodedom.CodeDomPatterns;
-
- namespace LinqToCodedom.Generator
- {
- public static partial class Emit
- {
- public static CodeUsingStatement @using<TResult, T>(Expression<Func<TResult, T>> exp,
- params CodeStatement[] stmt)
- {
- return new CodeUsingStatement(
- new CodeExpressionVisitor(new VisitorContext()).Visit(exp), stmt
- );
- }
-
- public static CodeUsingStatement @using<TResult>(Expression<Func<TResult>> exp,
- params CodeStatement[] stmt)
- {
- return new CodeUsingStatement(
- new CodeExpressionVisitor(new VisitorContext()).Visit(exp), stmt
- );
- }
-
- public static CodeUsingStatement @using<TResult, T>(string varName,
- Expression<Func<TResult, T>> exp, params CodeStatement[] stmt)
- {
- return new CodeUsingStatement(
- new CodeAssignExpression(
- new CodeParameterDeclarationExpression(typeof(TResult), varName),
- new CodeExpressionVisitor(new VisitorContext()).Visit(exp)
- ), stmt
- );
- }
-
- public static CodeUsingStatement @using<TResult>(string varName,
- Expression<Func<TResult>> exp, params CodeStatement[] stmt)
- {
- return new CodeUsingStatement(
- new CodeAssignExpression(
- new CodeParameterDeclarationExpression(typeof(TResult), varName),
- new CodeExpressionVisitor(new VisitorContext()).Visit(exp)
- ), stmt
- );
- }
-
- public static CodeUsingStatement @using<TResult>(CodeTypeReference varType, string varName,
- Expression<Func<TResult>> exp, params CodeStatement[] stmt)
- {
- return new CodeUsingStatement(
- new CodeAssignExpression(
- new CodeParameterDeclarationExpression(varType, varName),
- new CodeExpressionVisitor(new VisitorContext()).Visit(exp)
- ), stmt
- );
- }
-
- }
- }