using System.Security.Policy;
using System.Configuration.Assemblies;
using System.Text;
-#if !NET_2_1 || MONOTOUCH
+#if !MOONLIGHT
using System.Runtime.Remoting;
using System.Runtime.Remoting.Activation;
#endif
{
}
-#if !NET_2_1 || MONOTOUCH
+#if !MOONLIGHT
[MonoTODO ("No COM support")]
public static ObjectHandle CreateComInstanceFrom (string assemblyName, string typeName)
{
activationAttributes, null);
}
+#if NET_4_0
+ [Obsolete]
+#endif
public static ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase,
BindingFlags bindingAttr, Binder binder, object [] args,
CultureInfo culture, object [] activationAttributes,
activationAttributes, null);
}
+#if NET_4_0
+ [Obsolete]
+#endif
public static ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase,
BindingFlags bindingAttr, Binder binder, object [] args,
CultureInfo culture, object [] activationAttributes, Evidence securityInfo)
return domain.CreateInstanceFrom (assemblyFile, typeName);
}
+
+#if NET_4_0
+ [Obsolete]
+#endif
public static ObjectHandle CreateInstanceFrom (AppDomain domain, string assemblyFile, string typeName,
bool ignoreCase, BindingFlags bindingAttr, Binder binder,
object [] args, CultureInfo culture,
return domain.CreateInstance (assemblyName, typeName);
}
+#if NET_4_0
+ [Obsolete]
+#endif
public static ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName,
bool ignoreCase, BindingFlags bindingAttr, Binder binder,
object [] args, CultureInfo culture,
}
CheckAbstractType (type);
-#if !NET_2_1 || MONOTOUCH
+#if !MOONLIGHT
if (activationAttributes != null && activationAttributes.Length > 0) {
if (!type.IsMarshalByRef) {
string msg = Locale.GetText ("Type '{0}' doesn't derive from MarshalByRefObject.", type.FullName);
}
}
-#if !NET_2_1 || MONOTOUCH
+#if !MOONLIGHT
[SecurityPermission (SecurityAction.LinkDemand, RemotingConfiguration = true)]
public static object GetObject (Type type, string url)
{
{
throw new NotImplementedException ();
}
+
+#if NET_4_0
+ public static ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase,
+ BindingFlags bindingAttr, Binder binder, object [] args,
+ CultureInfo culture, object [] activationAttributes)
+ {
+ Assembly assembly = null;
+ if(assemblyName == null)
+ assembly = Assembly.GetCallingAssembly ();
+ else
+ assembly = Assembly.Load (assemblyName);
+ Type type = assembly.GetType (typeName, true, ignoreCase);
+ object obj = CreateInstance (type, bindingAttr, binder, args, culture, activationAttributes);
+ return (obj != null) ? new ObjectHandle (obj) : null;
+ }
+
+ public static ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName,
+ bool ignoreCase, BindingFlags bindingAttr, Binder binder,
+ object [] args, CultureInfo culture,
+ object [] activationAttributes)
+ {
+ if (domain == null)
+ throw new ArgumentNullException ("domain");
+ return domain.CreateInstance (assemblyName, typeName, ignoreCase, bindingAttr, binder, args, culture, activationAttributes);
+ }
+
+ public static ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase,
+ BindingFlags bindingAttr, Binder binder, object [] args,
+ CultureInfo culture, object [] activationAttributes)
+ {
+ Assembly assembly = Assembly.LoadFrom (assemblyFile);
+ if (assembly == null)
+ return null;
+
+ Type type = assembly.GetType (typeName, true, ignoreCase);
+ if (type == null)
+ return null;
+
+ object obj = CreateInstance (type, bindingAttr, binder, args, culture, activationAttributes);
+ return (obj != null) ? new ObjectHandle (obj) : null;
+ }
+
+ public static ObjectHandle CreateInstanceFrom (AppDomain domain, string assemblyFile, string typeName,
+ bool ignoreCase, BindingFlags bindingAttr, Binder binder,
+ object [] args, CultureInfo culture,
+ object [] activationAttributes)
+ {
+ if (domain == null)
+ throw new ArgumentNullException ("domain");
+
+ return domain.CreateInstanceFrom (assemblyFile, typeName, ignoreCase, bindingAttr, binder, args, culture, activationAttributes);
+ }
+#endif
}
}