5
5
// Jb Evain (jbevain@gmail.com)
7
// Copyright (c) 2008 - 2010 Jb Evain
7
// Copyright (c) 2008 - 2011 Jb Evain
9
9
// Permission is hereby granted, free of charge, to any person obtaining
10
10
// a copy of this software and associated documentation files (the
32
using Mono.Collections.Generic;
32
34
namespace Mono.Cecil {
34
public sealed class CallSite : MethodReference {
36
public override string FullName {
36
public sealed class CallSite : IMethodSignature {
38
readonly MethodReference signature;
41
get { return signature.HasThis; }
42
set { signature.HasThis = value; }
45
public bool ExplicitThis {
46
get { return signature.ExplicitThis; }
47
set { signature.ExplicitThis = value; }
50
public MethodCallingConvention CallingConvention {
51
get { return signature.CallingConvention; }
52
set { signature.CallingConvention = value; }
55
public bool HasParameters {
56
get { return signature.HasParameters; }
59
public Collection<ParameterDefinition> Parameters {
60
get { return signature.Parameters; }
63
public TypeReference ReturnType {
64
get { return signature.MethodReturnType.ReturnType; }
65
set { signature.MethodReturnType.ReturnType = value; }
68
public MethodReturnType MethodReturnType {
69
get { return signature.MethodReturnType; }
73
get { return string.Empty; }
74
set { throw new InvalidOperationException (); }
77
public string Namespace {
78
get { return string.Empty; }
79
set { throw new InvalidOperationException (); }
82
public ModuleDefinition Module {
83
get { return ReturnType.Module; }
86
public IMetadataScope Scope {
87
get { return signature.ReturnType.Scope; }
90
public MetadataToken MetadataToken {
91
get { return signature.token; }
92
set { signature.token = value; }
95
public string FullName {
38
97
var signature = new StringBuilder ();
39
98
signature.Append (ReturnType.FullName);
41
100
return signature.ToString ();
106
this.signature = new MethodReference ();
107
this.signature.token = new MetadataToken (TokenType.Signature, 0);
110
public CallSite (TypeReference returnType)
113
if (returnType == null)
114
throw new ArgumentNullException ("returnType");
116
this.signature.ReturnType = returnType;
119
public override string ToString ()