internal UsingExpression(Expression resource, bool configureAwait) { disposeMethod = resource.Type.GetDisposeAsyncMethod() ?? throw new ArgumentException(ExceptionMessages.DisposePatternExpected(resource.Type), nameof(resource)); if (resource is ParameterExpression param) { assignment = null; Resource = param; } else { assignment = Assign(Resource = Variable(resource.Type, "resource"), resource); } this.configureAwait = configureAwait; }
internal UsingExpression(Expression resource) { disposeMethod = resource.Type.GetDisposeMethod() ?? throw new ArgumentNullException(ExceptionMessages.DisposePatternExpected(resource.Type)); if (resource is ParameterExpression param) { assignment = null; Resource = param; } else { assignment = Assign(Resource = Variable(resource.Type, "resource"), resource); } }