[ComVisible(true)]
[AttributeUsage (AttributeTargets.Field | AttributeTargets.Parameter |
AttributeTargets.ReturnValue, Inherited=false)]
+ [StructLayout (LayoutKind.Sequential)]
public sealed class MarshalAsAttribute : Attribute {
- private UnmanagedType utype;
- public UnmanagedType ArraySubType;
+ /*keep these fields in sync with object-internals.h*/
+#pragma warning disable 169, 414
public string MarshalCookie;
-
[ComVisible(true)]
public string MarshalType;
[ComVisible(true)]
public Type MarshalTypeRef;
-
+ public Type SafeArrayUserDefinedSubType;
+
+ private UnmanagedType utype;
+ public UnmanagedType ArraySubType;
#if !MOONLIGHT
public VarEnum SafeArraySubType;
+#else
+ private int SafeArraySubType;
#endif
-
public int SizeConst;
- public short SizeParamIndex;
- public Type SafeArrayUserDefinedSubType;
public int IidParameterIndex;
+ public short SizeParamIndex;
+#pragma warning disable 169, 414
public MarshalAsAttribute (short unmanagedType) {
utype = (UnmanagedType)unmanagedType;
public UnmanagedType Value {
get {return utype;}
}
+
+ internal MarshalAsAttribute Copy ()
+ {
+ return (MarshalAsAttribute)this.MemberwiseClone ();
+ }
}
}
MonoArray *data;
} MonoReflectionCustomAttr;
+typedef struct {
+ MonoObject object;
+ MonoString *marshal_cookie;
+ MonoString *marshal_type;
+ MonoReflectionType *marshal_type_ref;
+ MonoReflectionType *marshal_safe_array_user_defined_subtype;
+ guint32 utype;
+ guint32 array_subtype;
+ gint32 safe_array_subtype;
+ gint32 size_const;
+ gint32 IidParameterIndex;
+ gint16 size_param_index;
+} MonoReflectionMarshalAsAttribute;
+
+
typedef struct {
MonoObject object;
gint32 call_conv;