//------------------------------------------------------------------------------ // // // [....] // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.CodeDom { using System.Diagnostics; using System; using Microsoft.Win32; using System.Collections; using System.Runtime.InteropServices; using System.Runtime.Serialization; /// /// /// Represents an /// expression to invoke a method, to be called on a given target. /// /// [ ClassInterface(ClassInterfaceType.AutoDispatch), ComVisible(true), Serializable, ] public class CodeMethodReferenceExpression : CodeExpression { private CodeExpression targetObject; private string methodName; [OptionalField] private CodeTypeReferenceCollection typeArguments; /// /// /// Initializes a new instance of . /// /// public CodeMethodReferenceExpression() { } /// /// /// Initializes a new instance of using the specified /// target object and method name. /// /// public CodeMethodReferenceExpression(CodeExpression targetObject, string methodName) { TargetObject = targetObject; MethodName = methodName; } public CodeMethodReferenceExpression(CodeExpression targetObject, string methodName, params CodeTypeReference[] typeParameters) { TargetObject = targetObject; MethodName = methodName; if( typeParameters != null && typeParameters.Length > 0) { TypeArguments.AddRange(typeParameters); } } /// /// /// Gets or sets the target object. /// /// public CodeExpression TargetObject { get { return targetObject; } set { this.targetObject = value; } } /// /// /// Gets or sets the name of the method to invoke. /// /// public string MethodName { get { return (methodName == null) ? string.Empty : methodName; } set { methodName = value; } } [System.Runtime.InteropServices.ComVisible(false)] public CodeTypeReferenceCollection TypeArguments{ get { if( typeArguments == null) { typeArguments = new CodeTypeReferenceCollection(); } return typeArguments; } } } }