RuntimeType[] GetNestedTypes_internal(string displayName, BindingFlags bindingAttr, MemberListType listType) { string internalName = null; #if NETCORE if (displayName != null) { internalName = displayName; } #else if (displayName != null) { internalName = TypeIdentifiers.FromDisplay(displayName).InternalName; } #endif using (var namePtr = new Mono.SafeStringMarshal(internalName)) using (var h = new Mono.SafeGPtrArrayHandle(GetNestedTypes_native(namePtr.Value, bindingAttr, listType))) { int n = h.Length; var a = new RuntimeType [n]; for (int i = 0; i < n; i++) { var th = new RuntimeTypeHandle(h[i]); a[i] = (RuntimeType)Type.GetTypeFromHandle(th); } return(a); } }
internal static RuntimeType?GetTypeByName(string typeName, bool throwOnError, bool ignoreCase, ref StackCrawlMark stackMark) { ArgumentNullException.ThrowIfNull(typeName); if (typeName.Length == 0) { if (throwOnError) { throw new TypeLoadException("A null or zero length string does not represent a valid Type."); } else { return(null); } } RuntimeType?t = null; using (var namePtr = new Mono.SafeStringMarshal(typeName)) { internal_from_name( namePtr.Value, ref stackMark, ObjectHandleOnStack.Create(ref t), throwOnError, ignoreCase); if (throwOnError && t == null) { throw new TypeLoadException("Error loading '" + typeName + "'"); } } return(t); }
public bool IsInRole(string role) { if (role == null) { return(false); // ArgumentNullException } if (Environment.IsUnix) { // note: Posix is always case-sensitive using (var rolePtr = new Mono.SafeStringMarshal(role)) return(IsMemberOfGroupName(Token, rolePtr.Value)); } else { // Windows specific code that // (a) build the role cache like the MS framework (for compatibility) // (b) case sensitive (for Fx 1.0) and case insensitive (later Fx) if (m_roles == null) { m_roles = WindowsIdentity._GetRoles(Token); } role = role.ToUpperInvariant(); foreach (string check in m_roles) { if ((check != null) && (role == check.ToUpperInvariant())) { return(true); } } return(false); } }
RuntimeFieldInfo[] GetFields_internal(string name, BindingFlags bindingAttr, MemberListType listType, RuntimeType reflectedType) { var refh = new RuntimeTypeHandle(reflectedType); using (var namePtr = new Mono.SafeStringMarshal(name)) using (var h = new Mono.SafeGPtrArrayHandle(GetFields_native(namePtr.Value, bindingAttr, listType))) { int n = h.Length; var a = new RuntimeFieldInfo[n]; for (int i = 0; i < n; i++) { var fh = new RuntimeFieldHandle(h[i]); a[i] = (RuntimeFieldInfo)FieldInfo.GetFieldFromHandle(fh, refh); } return(a); } }
RuntimePropertyInfo[] GetPropertiesByName(string name, BindingFlags bindingAttr, MemberListType listType, RuntimeType reflectedType) { var refh = new RuntimeTypeHandle(reflectedType); using (var namePtr = new Mono.SafeStringMarshal(name)) using (var h = new Mono.SafeGPtrArrayHandle(GetPropertiesByName_native(namePtr.Value, bindingAttr, listType))) { var n = h.Length; var a = new RuntimePropertyInfo [n]; for (int i = 0; i < n; i++) { var ph = new Mono.RuntimePropertyHandle(h[i]); a[i] = (RuntimePropertyInfo)RuntimePropertyInfo.GetPropertyFromHandle(ph, refh); } return(a); } }
internal RuntimeMethodInfo[] GetMethodsByName(string name, BindingFlags bindingAttr, MemberListType listType, RuntimeType reflectedType) { var refh = new RuntimeTypeHandle(reflectedType); using (var namePtr = new Mono.SafeStringMarshal(name)) using (var h = new Mono.SafeGPtrArrayHandle(GetMethodsByName_native(namePtr.Value, bindingAttr, listType))) { var n = h.Length; var a = new RuntimeMethodInfo [n]; for (int i = 0; i < n; i++) { var mh = new RuntimeMethodHandle(h[i]); a[i] = (RuntimeMethodInfo)RuntimeMethodInfo.GetMethodFromHandleNoGenericCheck(mh, refh); } return(a); } }
RuntimeEventInfo[] GetEvents_internal(string name, BindingFlags bindingAttr, RuntimeType reflectedType) { var refh = new RuntimeTypeHandle(reflectedType); using (var namePtr = new Mono.SafeStringMarshal(name)) using (var h = new Mono.SafeGPtrArrayHandle(GetEvents_native(namePtr.Value, bindingAttr))) { int n = h.Length; var a = new RuntimeEventInfo[n]; for (int i = 0; i < n; i++) { var eh = new Mono.RuntimeEventHandle(h[i]); a[i] = (RuntimeEventInfo)EventInfo.GetEventFromHandle(eh, refh); } return(a); } }
RuntimeEventInfo[] GetEvents_internal(string name, BindingFlags bindingAttr, MemberListType listType, RuntimeType reflectedType) { var refh = new RuntimeTypeHandle(reflectedType); using (var namePtr = new Mono.SafeStringMarshal(name)) using (var h = new Mono.SafeGPtrArrayHandle(GetEvents_native(namePtr.Value, listType))) { int n = h.Length; var a = new RuntimeEventInfo[n]; for (int i = 0; i < n; i++) { var eh = new Mono.RuntimeEventHandle(h[i]); #if NETCORE throw new NotImplementedException(); #else a[i] = (RuntimeEventInfo)EventInfo.GetEventFromHandle(eh, refh); #endif } return(a); } }
RuntimeType[] GetNestedTypes_internal (string displayName, BindingFlags bindingAttr) { string internalName = null; if (displayName != null) internalName = TypeIdentifiers.FromDisplay (displayName).InternalName; using (var namePtr = new Mono.SafeStringMarshal (internalName)) using (var h = new Mono.SafeGPtrArrayHandle (GetNestedTypes_native (namePtr.Value, bindingAttr))) { int n = h.Length; var a = new RuntimeType [n]; for (int i = 0; i < n; i++) { var th = new RuntimeTypeHandle (h[i]); a[i] = (RuntimeType) Type.GetTypeFromHandle (th); } return a; } }
RuntimeEventInfo[] GetEvents_internal (string name, BindingFlags bindingAttr, RuntimeType reflectedType) { var refh = new RuntimeTypeHandle (reflectedType); using (var namePtr = new Mono.SafeStringMarshal (name)) using (var h = new Mono.SafeGPtrArrayHandle (GetEvents_native (namePtr.Value, bindingAttr))) { int n = h.Length; var a = new RuntimeEventInfo[n]; for (int i = 0; i < n; i++) { var eh = new Mono.RuntimeEventHandle (h[i]); a[i] = (RuntimeEventInfo) EventInfo.GetEventFromHandle (eh, refh); } return a; } }
RuntimePropertyInfo[] GetPropertiesByName (string name, BindingFlags bindingAttr, bool icase, RuntimeType reflectedType) { var refh = new RuntimeTypeHandle (reflectedType); using (var namePtr = new Mono.SafeStringMarshal (name)) using (var h = new Mono.SafeGPtrArrayHandle (GetPropertiesByName_native (namePtr.Value, bindingAttr, icase))) { var n = h.Length; var a = new RuntimePropertyInfo [n]; for (int i = 0; i < n; i++) { var ph = new Mono.RuntimePropertyHandle (h[i]); a[i] = (RuntimePropertyInfo) PropertyInfo.GetPropertyFromHandle (ph, refh); } return a; } }
internal RuntimeMethodInfo[] GetMethodsByName (string name, BindingFlags bindingAttr, bool ignoreCase, RuntimeType reflectedType) { var refh = new RuntimeTypeHandle (reflectedType); using (var namePtr = new Mono.SafeStringMarshal (name)) using (var h = new Mono.SafeGPtrArrayHandle (GetMethodsByName_native (namePtr.Value, bindingAttr, ignoreCase))) { var n = h.Length; var a = new RuntimeMethodInfo [n]; for (int i = 0; i < n; i++) { var mh = new RuntimeMethodHandle (h[i]); a[i] = (RuntimeMethodInfo) MethodBase.GetMethodFromHandleNoGenericCheck (mh, refh); } return a; } }