C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: 動的リンクの記述方法について


(過去ログ 32 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■15467 / inTopicNo.1)  動的リンクの記述方法について
  
□投稿者/ あら (46回)-(2008/03/13(Thu) 11:42:36)

分類:[C#] 

お世話になっております。

C#で動的リンクはどのように記述すればよいのでしょうか?

例えば下記のようなDLLを作成したとします。
namespace ClassLibrary1
{
    public class Class1
    {
        public string Test()
        {
            return "AAA";
        }
    }
}

静的リンクでは「参照設定->参照の追加」でDLLファイルを選択し
---
using ClassLibrary1;

            ClassLibrary1.Class1 c1 = new Class1();
            textBox1.Text = c1.Test();
---
を追加すれば、DLLのメソッドが呼び出せると思うのですが、
これと同様の処理を動的リンクで行いたいと思っています。

静的リンク、動的リンクの言葉の使い方が間違っていたらすみません。
ご教授、アドバイス等宜しくお願いします。

C# VS2005
.NET2.0

引用返信 編集キー/
■15469 / inTopicNo.2)  Re[1]: 動的リンクの記述方法について
□投稿者/ シャノン (316回)-(2008/03/13(Thu) 12:07:50)
No15467 (あら さん) に返信
> お世話になっております。
>
> C#で動的リンクはどのように記述すればよいのでしょうか?
>
> 例えば下記のようなDLLを作成したとします。
> namespace ClassLibrary1
> {
> public class Class1
> {
> public string Test()
> {
> return "AAA";
> }
> }
> }

アセンブリ名が ClassLibrary1.dll であれば、

Assembly classLibrary1 = Assembly.LoadFile( "ClassLibrary1.dll" );
Type class1 = classLibrary1.GetType( "Class1" );
object instance = class1.InvokeMember( null, BindingFlags.CreateInstance, null, null, null );
string result = ( string )class1.InvokeMember( "Test", BindingFlags.InvokeMethod, null, instance, null );

かな。
引用返信 編集キー/
■15477 / inTopicNo.3)  Re[2]: 動的リンクの記述方法について
□投稿者/ あら (47回)-(2008/03/13(Thu) 15:21:31)
返信ありがとうございます。

教えて頂いたソースを試したところ
object instance = class1.InvokeMember( null, BindingFlags.CreateInstance, null, null, null );

NullReferenceException オブジェクト参照がオブジェクトインスタンスに設定されていません。
とのエラーがでてしまいます。

どのように記述すれば回避できますでしょうか?
ご教授お願いします。



引用返信 編集キー/
■15478 / inTopicNo.4)  Re[3]: 動的リンクの記述方法について
□投稿者/ 魔界の仮面弁士 (678回)-(2008/03/13(Thu) 15:22:32)
No15477 (あら さん) に返信
> object instance = class1.InvokeMember( null, BindingFlags.CreateInstance, null, null, null );
> で
> NullReferenceException オブジェクト参照がオブジェクトインスタンスに設定されていません。
> とのエラーがでてしまいます。

class1 が null になっていませんか?
引用返信 編集キー/
■15480 / inTopicNo.5)  Re[4]: 動的リンクの記述方法について
□投稿者/ あら (48回)-(2008/03/13(Thu) 15:28:28)
返信ありがとうございます。

ご指摘の通りclass1がnullとなっておりました。
Type class1 = classLibrary1.GetType( "ClassLibrary1.Class1" );
とすれば、問題なく動作いたしました。

ありがとございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -