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

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

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

Re[1]: 動的リンクで戻り値のキャスト方法について


(過去ログ 32 を表示中)

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

■15505 / inTopicNo.1)  動的リンクで戻り値のキャスト方法について
  
□投稿者/ あら (49回)-(2008/03/14(Fri) 10:34:16)

分類:[C#] 

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

以前「動的リンクの記述方法について」"http://bbs.wankuma.com/index.cgi?mode=al2&namber=15467"
で質問させて頂いたのですが、またわからないことがでてきたので、再度似た内容ですが、
別スレッドで質問させていただきます。

下記のようなDLLを作成した場合に、下記のようにintでキャストするのではなく静的リンクのように
"Alphabet alphabet = Class1.retAlphabet()"のように受け取りをDLLで定義している型で受け取りた
いと思っております。

どのように記述すればよいでしょうか?ご教授、アドバイスお願いします。

C# VisualStudio2005、.NET2.0 
-----
<DLLファイル>
namespace ClassLibrary1
{
    public class Class1
    {
        public Alphabet retAlphabet()
        {
            return Alphabet.A;
        }
    }

    public enum Alphabet
    {
        A,
        B,
        C
    }
}
-----
<呼び出し方のソース>
        private void button1_Click(object sender, EventArgs e)
        {
            string path = Environment.CurrentDirectory + @"\ClassLibrary1.dll";
            Assembly classLibrary1 = Assembly.LoadFile(path);
            Type class1 = classLibrary1.GetType("ClassLibrary1.Class1");
            
            object instance = class1.InvokeMember(
                null,
                BindingFlags.CreateInstance,
                null,
                null,
                null);
                
            int str = (int)class1.InvokeMember(
                "retAlphabet",
                BindingFlags.InvokeMethod,
                null,
                instance,
                null);
            textBox1.Text = str.ToString();
         }

引用返信 編集キー/
■15519 / inTopicNo.2)  Re[1]: 動的リンクで戻り値のキャスト方法について
□投稿者/ あら (50回)-(2008/03/14(Fri) 14:21:35)
自己スレですが解決しました。
object str = class1.InvokeMember(・・・
とすれば、期待していた戻り値を取得できました。

お騒がせしました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -