//------------------------------------------------------------------------------
//
//
// Microsoft
// 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;
}
}
}
}