Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfrijters <jfrijters>2010-01-25 08:29:31 +0300
committerjfrijters <jfrijters>2010-01-25 08:29:31 +0300
commit198c9d70eac5d6d88718bfedee19314edf77661b (patch)
treecf6e13cb042f93d214c145fd405fefc19cb21b59 /reflect/StandAloneMethodSig.cs
parent2966abd1dcb1eaa8fe692094f657943a9f2d21be (diff)
New IKVM.Reflection implementation.
Diffstat (limited to 'reflect/StandAloneMethodSig.cs')
-rw-r--r--reflect/StandAloneMethodSig.cs79
1 files changed, 79 insertions, 0 deletions
diff --git a/reflect/StandAloneMethodSig.cs b/reflect/StandAloneMethodSig.cs
new file mode 100644
index 00000000..1cd310e3
--- /dev/null
+++ b/reflect/StandAloneMethodSig.cs
@@ -0,0 +1,79 @@
+/*
+ Copyright (C) 2010 Jeroen Frijters
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jeroen Frijters
+ jeroen@frijters.net
+
+*/
+using System;
+using System.Runtime.InteropServices;
+using IKVM.Reflection.Reader;
+
+namespace IKVM.Reflection
+{
+ public sealed class __StandAloneMethodSig
+ {
+ private readonly bool unmanaged;
+ private readonly CallingConvention unmanagedCallingConvention;
+ private readonly CallingConventions callingConvention;
+ private readonly Type returnType;
+ private readonly Type[] parameterTypes;
+ private readonly Type[] optionalParameterTypes;
+
+ internal __StandAloneMethodSig(bool unmanaged, CallingConvention unmanagedCallingConvention, CallingConventions callingConvention, Type returnType, Type[] parameterTypes, Type[] optionalParameterTypes)
+ {
+ this.unmanaged = unmanaged;
+ this.unmanagedCallingConvention = unmanagedCallingConvention;
+ this.callingConvention = callingConvention;
+ this.returnType = returnType;
+ this.parameterTypes = parameterTypes;
+ this.optionalParameterTypes = optionalParameterTypes;
+ }
+
+ public bool IsUnmanaged
+ {
+ get { return unmanaged; }
+ }
+
+ public CallingConventions CallingConvention
+ {
+ get { return callingConvention; }
+ }
+
+ public CallingConvention UnmanagedCallingConvention
+ {
+ get { return unmanagedCallingConvention; }
+ }
+
+ public Type ReturnType
+ {
+ get { return returnType; }
+ }
+
+ public Type[] ParameterTypes
+ {
+ get { return (Type[])parameterTypes.Clone(); }
+ }
+
+ public Type[] OptionalParameterTypes
+ {
+ get { return (Type[])optionalParameterTypes.Clone(); }
+ }
+ }
+}