Xamarin Public Jenkins (auto-signing) e79aa3c0ed Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
2016-08-03 10:59:49 +00:00

101 lines
3.2 KiB
C#

//------------------------------------------------------------------------------
// <copyright file="codemethodreferenceexpression.cs" company="Microsoft">
//
// <OWNER>[....]</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.CodeDom {
using System.Diagnostics;
using System;
using Microsoft.Win32;
using System.Collections;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
/// <devdoc>
/// <para>
/// Represents an
/// expression to invoke a method, to be called on a given target.
/// </para>
/// </devdoc>
[
ClassInterface(ClassInterfaceType.AutoDispatch),
ComVisible(true),
Serializable,
]
public class CodeMethodReferenceExpression : CodeExpression {
private CodeExpression targetObject;
private string methodName;
[OptionalField]
private CodeTypeReferenceCollection typeArguments;
/// <devdoc>
/// <para>
/// Initializes a new instance of <see cref='System.CodeDom.CodeMethodReferenceExpression'/>.
/// </para>
/// </devdoc>
public CodeMethodReferenceExpression() {
}
/// <devdoc>
/// <para>
/// Initializes a new instance of <see cref='System.CodeDom.CodeMethodReferenceExpression'/> using the specified
/// target object and method name.
/// </para>
/// </devdoc>
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);
}
}
/// <devdoc>
/// <para>
/// Gets or sets the target object.
/// </para>
/// </devdoc>
public CodeExpression TargetObject {
get {
return targetObject;
}
set {
this.targetObject = value;
}
}
/// <devdoc>
/// <para>
/// Gets or sets the name of the method to invoke.
/// </para>
/// </devdoc>
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;
}
}
}
}