public __AddDeclarativeSecurity ( CustomAttributeBuilder customBuilder ) : void | ||
customBuilder | CustomAttributeBuilder | |
return | void |
internal override void Apply(ClassLoaderWrapper loader, TypeBuilder tb, object annotation) { if (type == JVM.Import(typeof(System.Runtime.InteropServices.StructLayoutAttribute)) && tb.BaseType != Types.Object) { // we have to handle this explicitly, because if we apply an illegal StructLayoutAttribute, // TypeBuilder.CreateType() will later on throw an exception. #if STATIC_COMPILER loader.IssueMessage(Message.IgnoredCustomAttribute, type.FullName, "Type '" + tb.FullName + "' does not extend cli.System.Object"); #else Tracer.Error(Tracer.Runtime, "StructLayoutAttribute cannot be applied to {0}, because it does not directly extend cli.System.Object", tb.FullName); #endif return; } if (type.IsSubclassOf(Types.SecurityAttribute)) { #if STATIC_COMPILER tb.__AddDeclarativeSecurity(MakeCustomAttributeBuilder(loader, annotation)); #elif STUB_GENERATOR #else SecurityAction action; PermissionSet permSet; if (MakeDeclSecurity(type, annotation, out action, out permSet)) { tb.AddDeclarativeSecurity(action, permSet); } #endif } else { tb.SetCustomAttribute(MakeCustomAttributeBuilder(loader, annotation)); } }