2010-07-14 21 views
10

Làm cách nào để tạo đối tượng COM/OLE/ActiveX động trong C# 4.0 từ mã định danh chương trình hoặc ProgID (chẳng hạn như "Word.Application") mà không tham chiếu đến thư viện?Tương đương CreateObject cho C# 4, từ khóa động và liên kết trễ?

Trong C# 3.5 Tôi muốn phải viết một cái gì đó giống như

Type comObjectType = Type.GetTypeFromProgID(progId, true); 
Activator.CreateInstance(comObjectType); 

Có một cách dễ dàng hơn để làm điều đó trong C# 4.0 vì vậy tôi có thể gán nó vào một biến kiểu động (sử dụng từ khóa động) ?

Trả lời

14

Có gì sai với

dynamic myTypeInstance = Activator.CreateInstance(Type.GetTypeFromProgID(typeName, true)); 

?

Nếu đó là một loại tên nổi tiếng, cũng có

dynamic myTypeInstance = Activator.CreateInstance("typeName", "assemblyName"); 
+0

Làm việc rất tốt (Bất kỳ CPU quá). Cảm ơn. – harveyt

Các vấn đề liên quan