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

假设您使用的命名空间反映了应用程序的类型:您不能像那样使用 OpenFileDialog!

您是否尝试过在 main 函数之前添加 [STAThread] ?

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

操作系统的几个组件,例如对话框,使用 COM 组件,要与之通信,需要在程序的入口点中具有此属性。

于 2012-10-09T21:11:55.290 回答
0

您创建的很可能AppDomain没有FileDialogPermission. 这当然意味着尝试使用 anOpenFileDialog将会失败。请参阅此处了解更多信息。

于 2012-10-09T21:10:59.790 回答