Tôi muốn đặt câu hỏi để nhận ra sự khác biệt giữa AppDomain và Activator, tôi đã tải dll của mình qua appdomain.CreateInstance. Nhưng tôi nhận ra rằng có nhiều phương pháp để tạo ra cá thể. Vì vậy, khi nào hoặc ở đâu tôi chọn phương pháp này? example1:sự khác nhau giữa AppDomain.CreateInstance và Activator.CreateInstance là gì?
// Use the file name to load the assembly into the current
// application domain.
Assembly a = Assembly.Load("example");
// Get the type to use.
Type myType = a.GetType("Example");
// Get the method to call.
MethodInfo myMethod = myType.GetMethod("MethodA");
// Create an instance.
object obj = Activator.CreateInstance(myType);
// Execute the method.
myMethod.Invoke(obj, null);
Ví dụ 2:
public WsdlClassParser CreateWsdlClassParser()
{
this.CreateAppDomain(null);
string AssemblyPath = Assembly.GetExecutingAssembly().Location;
WsdlClassParser parser = null;
try
{
parser = (WsdlClassParser) this.LocalAppDomain.CreateInstanceFrom(AssemblyPath,
typeof(Westwind.WebServices.WsdlClassParser).FullName).Unwrap() ;
}
catch (Exception ex)
{
this.ErrorMessage = ex.Message;
}
return parser;
}
Example3:
private static void InstantiateMyTypeSucceed(AppDomain domain)
{
try
{
string asmname = Assembly.GetCallingAssembly().FullName;
domain.CreateInstance(asmname, "MyType");
}
catch (Exception e)
{
Console.WriteLine();
Console.WriteLine(e.Message);
}
}
bạn có thể giải thích tại sao tôi cần phương pháp nhiều hơn hoặc sự khác biệt là gì?