- - PR -
動的に作成したプログラムを実行するようなことはできますか?
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-03-21 15:19
初心者です。VB.NETでわからないことがあります。教えてください。
プログラム中でつくった文字列を、プログラムのように動作させることはできますか? 動的にインスタンスを作成して、そのメソッドにアクセスすることはできたのですが、式の評価なども、文字列をそれとして動作させたりできたら、イレギュラーな感じですが、うれしいです。 "If True Then " & VbCrLf & " Msgbox("こんにちは") " & VbCrLf & " End If " とかっていう文字列をなんか色々いじるとちゃんとプログラムとして動作させるようなことです。無理でしょうか。 | ||||||||
|
投稿日時: 2008-03-21 15:39
VB.NETから動的にJScriptを動作させる方法がみつかりまして、これで代用できそうな感じです。失礼しました。
| ||||||||
|
投稿日時: 2008-03-21 15:45
http://www.atmarkit.co.jp/fdotnet/dotnettips/101compileinvoke/compileinvoke.html
ここらへんも参考になるとおもいます | ||||||||
|
投稿日時: 2008-03-24 17:31
文字列で与えられたVBのプログラムソースコードを実行したい ということですよね。 私もずっと、すっきりとこれを実現する方法がないものか気になって いましたので調べてみました。 で、調べ方が悪かったのか、私に理解できるサンプルが見つからなかった ので結局書いてみました。 でも、あまりわかりやすくてすっきりとしたものにはなりませんでした。 がっかり。 元質問者様のやりたかったことは、別の手段で達成しているとのことで、 すでに遅かったようでさらにがっかりなんですが、もしかしたら将来、 何かの役に立つ方がいらっしゃるかもしれないので、私の作った がっかりサンプルソースコードを置いときます。 Visual Studio 2008 の.NET Framework3.5ターゲットで動作検証しています。 このままのソースでは.NET Framework1.0,1.1では動作しないと思われます。 これは、.NET Framework 2.0から、ICodeCompiler インターフェイスを経由 せずにCompileAssemblyFromSourceを呼び出すように変更がされたからです。 .NET Framework クラス ライブラリ ICodeCompiler インターフェイス http://msdn2.microsoft.com/ja-jp/library/system.codedom.compiler.icodecompiler(VS.80).aspx もしも使われる方は、私のサンプルを鵜呑みにせず、実際に運用する プログラムにはコピペせず、以下のMSDNの説明をお読みになって理解 のうえご利用ください。 .NET Framework クラス ライブラリ System.CodeDom.Compiler 名前空間 http://msdn2.microsoft.com/ja-jp/library/system.codedom.compiler(VS.80).aspx 文字列をコンパイルして実行、という目的をシンプルに表現するために、 意図的にこの順番に平坦に書いています。 実際に使うときは、適宜、メソッド化、クラス化をお勧めします。
_________________ たつごろー codeseek こみゅぷらす |
1