1

私はこの単純なコードを持っています:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;
using System.IO;
using Microsoft.Win32;
using System.Xml;

namespace ConsoleApplication1
{
    class Program
    {
        public static void Main(string[] args)
        {
             OpenFileDialog ofd = new OpenFileDialog();
             ofd.ShowDialog();
        }
    }
}

でボタンをクリックするとコンパイルされますCSharpCodeProvider。次に、それを新しいものにロードしてメソッドAppDomainを実行しMainますが、ファイルを開くダイアログが表示されません。私はこれをテストしたので、それが実行されていることを知っています。

また、ドメインをアンロードしようとするとエラーが発生します。

これ以上の情報が必要な場合は、質問してください。

4

2 に答える 2

0

ほとんどのAppDomain場合、作成した にはFileDialogPermission. これはもちろん、を使用しようとするOpenFileDialogと失敗することを意味します。詳しくはこちらをご覧ください。

于 2012-10-09T21:10:59.790 に答える
0

使用している名前空間がアプリケーションのタイプを反映していると仮定すると、そのように OpenFileDialog を使用することはできません!

メイン関数の前に[STAThread] を追加してみましたか?

[STAThread]
public static void Main(string[] args)

ダイアログなどのオペレーティング システムのいくつかのコンポーネントは、通信する COM コンポーネントを使用し、プログラムのエントリ ポイントにこの属性が存在する必要があります。

于 2012-10-09T21:11:55.290 に答える