diff options
Diffstat (limited to 'src/mscorlib/src/System/Activator.cs')
-rw-r--r-- | src/mscorlib/src/System/Activator.cs | 136 |
1 files changed, 14 insertions, 122 deletions
diff --git a/src/mscorlib/src/System/Activator.cs b/src/mscorlib/src/System/Activator.cs index 274b0e7ec5..6fad8f3173 100644 --- a/src/mscorlib/src/System/Activator.cs +++ b/src/mscorlib/src/System/Activator.cs @@ -16,10 +16,6 @@ namespace System { using System; using System.Reflection; using System.Runtime.Remoting; -#if FEATURE_REMOTING - using System.Runtime.Remoting.Activation; - using Message = System.Runtime.Remoting.Messaging.Message; -#endif using System.Security; using CultureInfo = System.Globalization.CultureInfo; using Evidence = System.Security.Policy.Evidence; @@ -34,7 +30,7 @@ namespace System { // Only statics, does not need to be marked with the serializable attribute [ClassInterface(ClassInterfaceType.None)] [ComDefaultInterface(typeof(_Activator))] -[System.Runtime.InteropServices.ComVisible(true)] + [System.Runtime.InteropServices.ComVisible(true)] public sealed class Activator : _Activator { internal const int LookupMask = 0x000000FF; @@ -60,7 +56,6 @@ namespace System { return CreateInstance(type, bindingAttr, binder, args, culture, null); } - [System.Security.SecuritySafeCritical] // auto-generated [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable static public Object CreateInstance(Type type, BindingFlags bindingAttr, @@ -70,7 +65,7 @@ namespace System { Object[] activationAttributes) { if ((object)type == null) - throw new ArgumentNullException("type"); + throw new ArgumentNullException(nameof(type)); Contract.EndContractBlock(); if (type is System.Reflection.Emit.TypeBuilder) @@ -81,26 +76,13 @@ namespace System { bindingAttr |= Activator.ConstructorDefault; if (activationAttributes != null && activationAttributes.Length > 0){ - // If type does not derive from MBR - // throw notsupportedexception -#if FEATURE_REMOTING - if(type.IsMarshalByRef){ - // The fix below is preventative. - // - if(!(type.IsContextful)){ - if(activationAttributes.Length > 1 || !(activationAttributes[0] is UrlAttribute)) - throw new NotSupportedException(Environment.GetResourceString("NotSupported_NonUrlAttrOnMBR")); - } - } - else -#endif - throw new NotSupportedException(Environment.GetResourceString("NotSupported_ActivAttrOnNonMBR" )); + throw new PlatformNotSupportedException(Environment.GetResourceString("NotSupported_ActivAttr" )); } RuntimeType rt = type.UnderlyingSystemType as RuntimeType; if (rt == null) - throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"),"type"); + throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), nameof(type)); StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return rt.CreateInstanceImpl(bindingAttr,binder,args,culture,activationAttributes, ref stackMark); @@ -138,7 +120,6 @@ namespace System { * types to be created remotely without having to load the type locally. */ - [System.Security.SecuritySafeCritical] // auto-generated [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable static public ObjectHandle CreateInstance(String assemblyName, String typeName) @@ -156,7 +137,6 @@ namespace System { ref stackMark); } - [System.Security.SecuritySafeCritical] // auto-generated [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable static public ObjectHandle CreateInstance(String assemblyName, String typeName, @@ -180,13 +160,13 @@ namespace System { static public Object CreateInstance(Type type, bool nonPublic) { if ((object)type == null) - throw new ArgumentNullException("type"); + throw new ArgumentNullException(nameof(type)); Contract.EndContractBlock(); RuntimeType rt = type.UnderlyingSystemType as RuntimeType; if (rt == null) - throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "type"); + throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), nameof(type)); StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return rt.CreateInstanceDefaultCtor(!nonPublic, false, true, ref stackMark); @@ -230,7 +210,6 @@ namespace System { activationAttributes); } - [System.Security.SecuritySafeCritical] // auto-generated [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable [Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")] static public ObjectHandle CreateInstance(String assemblyName, @@ -256,7 +235,6 @@ namespace System { ref stackMark); } - [SecuritySafeCritical] [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable public static ObjectHandle CreateInstance(string assemblyName, string typeName, @@ -280,7 +258,6 @@ namespace System { ref stackMark); } - [System.Security.SecurityCritical] // auto-generated static internal ObjectHandle CreateInstance(String assemblyString, String typeName, bool ignoreCase, @@ -292,13 +269,6 @@ namespace System { Evidence securityInfo, ref StackCrawlMark stackMark) { -#if FEATURE_CAS_POLICY - if (securityInfo != null && !AppDomain.CurrentDomain.IsLegacyCasPolicyEnabled) - { - throw new NotSupportedException(Environment.GetResourceString("NotSupported_RequiresCasPolicyImplicit")); - } -#endif // FEATURE_CAS_POLICY - Type type = null; Assembly assembly = null; if (assemblyString == null) { @@ -356,13 +326,6 @@ namespace System { Evidence securityInfo) { -#if FEATURE_CAS_POLICY - if (securityInfo != null && !AppDomain.CurrentDomain.IsLegacyCasPolicyEnabled) - { - throw new NotSupportedException(Environment.GetResourceString("NotSupported_RequiresCasPolicyImplicit")); - } -#endif // FEATURE_CAS_POLICY - return CreateInstanceFromInternal(assemblyFile, typeName, ignoreCase, @@ -404,10 +367,6 @@ namespace System { Object[] activationAttributes, Evidence securityInfo) { -#if FEATURE_CAS_POLICY - Contract.Assert(AppDomain.CurrentDomain.IsLegacyCasPolicyEnabled || securityInfo == null); -#endif // FEATURE_CAS_POLICY - #pragma warning disable 618 Assembly assembly = Assembly.LoadFrom(assemblyFile, securityInfo); #pragma warning restore 618 @@ -436,15 +395,13 @@ namespace System { // to pass the security checks when activating the type. // - [System.Security.SecurityCritical] // auto-generated_required public static ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName) { if (domain == null) - throw new ArgumentNullException("domain"); + throw new ArgumentNullException(nameof(domain)); Contract.EndContractBlock(); return domain.InternalCreateInstanceWithNoSecurity(assemblyName, typeName); } - [System.Security.SecurityCritical] // auto-generated_required [Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")] public static ObjectHandle CreateInstance (AppDomain domain, string assemblyName, @@ -457,20 +414,12 @@ namespace System { Object[] activationAttributes, Evidence securityAttributes) { if (domain == null) - throw new ArgumentNullException("domain"); + throw new ArgumentNullException(nameof(domain)); Contract.EndContractBlock(); -#if FEATURE_CAS_POLICY - if (securityAttributes != null && !AppDomain.CurrentDomain.IsLegacyCasPolicyEnabled) - { - throw new NotSupportedException(Environment.GetResourceString("NotSupported_RequiresCasPolicyImplicit")); - } -#endif // FEATURE_CAS_POLICY - return domain.InternalCreateInstanceWithNoSecurity(assemblyName, typeName, ignoreCase, bindingAttr, binder, args, culture, activationAttributes, securityAttributes); } - [SecurityCritical] public static ObjectHandle CreateInstance(AppDomain domain, string assemblyName, string typeName, @@ -482,7 +431,7 @@ namespace System { object[] activationAttributes) { if (domain == null) - throw new ArgumentNullException("domain"); + throw new ArgumentNullException(nameof(domain)); Contract.EndContractBlock(); return domain.InternalCreateInstanceWithNoSecurity(assemblyName, @@ -503,15 +452,13 @@ namespace System { // to pass the security checks when activating the type. // - [System.Security.SecurityCritical] // auto-generated_required public static ObjectHandle CreateInstanceFrom (AppDomain domain, string assemblyFile, string typeName) { if (domain == null) - throw new ArgumentNullException("domain"); + throw new ArgumentNullException(nameof(domain)); Contract.EndContractBlock(); return domain.InternalCreateInstanceFromWithNoSecurity(assemblyFile, typeName); } - [System.Security.SecurityCritical] // auto-generated_required [Obsolete("Methods which use Evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")] public static ObjectHandle CreateInstanceFrom (AppDomain domain, string assemblyFile, @@ -524,20 +471,12 @@ namespace System { Object[] activationAttributes, Evidence securityAttributes) { if (domain == null) - throw new ArgumentNullException("domain"); + throw new ArgumentNullException(nameof(domain)); Contract.EndContractBlock(); -#if FEATURE_CAS_POLICY - if (securityAttributes != null && !AppDomain.CurrentDomain.IsLegacyCasPolicyEnabled) - { - throw new NotSupportedException(Environment.GetResourceString("NotSupported_RequiresCasPolicyImplicit")); - } -#endif // FEATURE_CAS_POLICY - return domain.InternalCreateInstanceFromWithNoSecurity(assemblyFile, typeName, ignoreCase, bindingAttr, binder, args, culture, activationAttributes, securityAttributes); } - [SecurityCritical] public static ObjectHandle CreateInstanceFrom(AppDomain domain, string assemblyFile, string typeName, @@ -549,7 +488,7 @@ namespace System { object[] activationAttributes) { if (domain == null) - throw new ArgumentNullException("domain"); + throw new ArgumentNullException(nameof(domain)); Contract.EndContractBlock(); return domain.InternalCreateInstanceFromWithNoSecurity(assemblyFile, @@ -563,28 +502,8 @@ namespace System { null); } -#if FEATURE_CLICKONCE - [System.Security.SecuritySafeCritical] // auto-generated - public static ObjectHandle CreateInstance (ActivationContext activationContext) { - AppDomainManager domainManager = AppDomain.CurrentDomain.DomainManager; - if (domainManager == null) - domainManager = new AppDomainManager(); - - return domainManager.ApplicationActivator.CreateInstance(activationContext); - } - - [System.Security.SecuritySafeCritical] // auto-generated - public static ObjectHandle CreateInstance (ActivationContext activationContext, string[] activationCustomData) { - AppDomainManager domainManager = AppDomain.CurrentDomain.DomainManager; - if (domainManager == null) - domainManager = new AppDomainManager(); - - return domainManager.ApplicationActivator.CreateInstance(activationContext, activationCustomData); - } -#endif // FEATURE_CLICKONCE - public static ObjectHandle CreateComInstanceFrom(String assemblyName, - String typeName) + String typeName) { return CreateComInstanceFrom(assemblyName, typeName, @@ -630,38 +549,11 @@ namespace System { } } -#if FEATURE_REMOTING - // This method is a helper method and delegates to the remoting - // services to do the actual work. - [System.Security.SecurityCritical] // auto-generated_required - static public Object GetObject(Type type, String url) - { - return GetObject(type, url, null); - } - - // This method is a helper method and delegates to the remoting - // services to do the actual work. - [System.Security.SecurityCritical] // auto-generated_required - static public Object GetObject(Type type, String url, Object state) - { - if (type == null) - throw new ArgumentNullException("type"); - Contract.EndContractBlock(); - return RemotingServices.Connect(type, url, state); - } -#endif - [System.Diagnostics.Conditional("_DEBUG")] private static void Log(bool test, string title, string success, string failure) { -#if FEATURE_REMOTING - if(test) - BCLDebug.Trace("REMOTE", "{0}{1}", title, success); - else - BCLDebug.Trace("REMOTE", "{0}{1}", title, failure); -#endif } - + void _Activator.GetTypeInfoCount(out uint pcTInfo) { throw new NotImplementedException(); |