From 953fa3bbc3e3dfb2523a4a26dc993178178afad3 Mon Sep 17 00:00:00 2001 From: jfrijters Date: Sat, 15 May 2010 09:28:29 +0000 Subject: [PATCH] We can't rely on System.dll being loaded. EditorBrowsableAttribute needs to be explicitly imported. --- runtime/TypeWrapper.cs | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/runtime/TypeWrapper.cs b/runtime/TypeWrapper.cs index aefd6d34..3911d893 100644 --- a/runtime/TypeWrapper.cs +++ b/runtime/TypeWrapper.cs @@ -346,40 +346,33 @@ namespace IKVM.Internal } } + private static CustomAttributeBuilder GetEditorBrowsableNever() + { + if (editorBrowsableNever == null) + { + editorBrowsableNever = new CustomAttributeBuilder(JVM.Import(typeof(System.ComponentModel.EditorBrowsableAttribute)).GetConstructor(new Type[] { JVM.Import(typeof(System.ComponentModel.EditorBrowsableState)) }), new object[] { (int)System.ComponentModel.EditorBrowsableState.Never }); + } + return editorBrowsableNever; + } + internal static void SetEditorBrowsableNever(TypeBuilder tb) { - if(editorBrowsableNever == null) - { - editorBrowsableNever = new CustomAttributeBuilder(StaticCompiler.GetType("System.ComponentModel.EditorBrowsableAttribute").GetConstructor(new Type[] { StaticCompiler.GetType("System.ComponentModel.EditorBrowsableState") }), new object[] { (int)System.ComponentModel.EditorBrowsableState.Never }); - } - tb.SetCustomAttribute(editorBrowsableNever); + tb.SetCustomAttribute(GetEditorBrowsableNever()); } internal static void SetEditorBrowsableNever(MethodBuilder mb) { - if(editorBrowsableNever == null) - { - editorBrowsableNever = new CustomAttributeBuilder(StaticCompiler.GetType("System.ComponentModel.EditorBrowsableAttribute").GetConstructor(new Type[] { StaticCompiler.GetType("System.ComponentModel.EditorBrowsableState") }), new object[] { (int)System.ComponentModel.EditorBrowsableState.Never }); - } - mb.SetCustomAttribute(editorBrowsableNever); + mb.SetCustomAttribute(GetEditorBrowsableNever()); } internal static void SetEditorBrowsableNever(ConstructorBuilder cb) { - if(editorBrowsableNever == null) - { - editorBrowsableNever = new CustomAttributeBuilder(StaticCompiler.GetType("System.ComponentModel.EditorBrowsableAttribute").GetConstructor(new Type[] { StaticCompiler.GetType("System.ComponentModel.EditorBrowsableState") }), new object[] { (int)System.ComponentModel.EditorBrowsableState.Never }); - } - cb.SetCustomAttribute(editorBrowsableNever); + cb.SetCustomAttribute(GetEditorBrowsableNever()); } internal static void SetEditorBrowsableNever(PropertyBuilder pb) { - if(editorBrowsableNever == null) - { - editorBrowsableNever = new CustomAttributeBuilder(StaticCompiler.GetType("System.ComponentModel.EditorBrowsableAttribute").GetConstructor(new Type[] { StaticCompiler.GetType("System.ComponentModel.EditorBrowsableState") }), new object[] { (int)System.ComponentModel.EditorBrowsableState.Never }); - } - pb.SetCustomAttribute(editorBrowsableNever); + pb.SetCustomAttribute(GetEditorBrowsableNever()); } internal static void SetDeprecatedAttribute(MethodBase mb)