C#でCreateObjectと同じことをするには?C#でVB.NETのCreateObject関数と同じことをするには、Type.GetTypeFromProgIdメソッドで型を取得し、Activator.CreateInstanceメソッドなどによりインスタンスを作成します。 次にVB.NETのCreateObject関数とほぼ同様の機能を有するメソッドのコードを示します。 [C#] /// <summary> /// COMオブジェクトへの参照を作成および取得する /// </summary> /// <param name="progId">作成するオブジェクトのプログラムID</param> /// <param name="serverName"> /// オブジェクトが作成されるネットワーク サーバーの名前 /// </param> /// <returns>作成されたCOMオブジェクト</returns> public static object CreateObject(string progId, string serverName) { Type t; if (serverName == null || serverName.Length == 0) t = Type.GetTypeFromProgID(progId); else t = Type.GetTypeFromProgID(progId, serverName, true); return Activator.CreateInstance(t); } /// <summary> /// COMオブジェクトへの参照を作成および取得する /// </summary> /// <param name="progId">作成するオブジェクトのプログラムID</param> /// <returns>作成されたCOMオブジェクト</returns> public static object CreateObject(string progId) { return CreateObject(progId, null); } ただし、C#ではVB.NETと違い、暗黙の遅延バインディングができませんので、取得したCOMオブジェクトのプロパティやメソッドを呼び出すには、Type.InvokeMemberメソッドを使用する必要があります。詳しくは、こちらをご覧ください。 |
|
Copyright 2002-2008 DOBON!. All rights reserved.
|