Import .3dm file is failed with RhinoCommon

I try to import a .3dm file with the below codes, but it is failed. I read other topic in forums, the syntax seem to be same. The variable bl always return false after RunScript() is called. How to solve it?

        string importFile, script;
        bool bl;

        OpenFileDialog dlg = new OpenFileDialog();
        dlg.Title = "Import file";
        dlg.CheckFileExists = true;
        dlg.CheckPathExists = true;
        dlg.Multiselect = false;
        dlg.DefaultExt = ".3dm";
        dlg.Filter = "Rhino files (*.3dm)|*.3dm";
        if (dlg.ShowDialog() != DialogResult.OK)
            return Result.Nothing;
        importFile = dlg.FileName;

        Rhino.RhinoDoc.ActiveDoc.Modified = false;
        script = string.Format(string.Format("_-Import \"{0}\" _Enter", importFile));
        bl = Rhino.RhinoApp.RunScript(script, false);
        if (bl)
            return Result.Success;
        else
            return Result.Failure;

I think you have spaces in your file location. You need to add chr(34) before and after importfile

I think something like this:

script = string.Format(string.Format("_-Import " & chr(34) & " “{0}”" & chr(34) & " _Enter", importFile));

If you are calling RhinoApp.RunScript from a plug-in command, make sure the command class is decorated with the ScriptRunner attribute. Here is an example:

https://github.com/dalefugier/SampleCsCommands/blob/master/SampleCsOpen3dm.cs

Thank Jordy and Dale.
The problem is solved after Rhino.Commands.CommandStyle(Rhino.Commands.Style.ScriptRunner) is added as Dale said.