■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();
}
|
|