1

Microsoft.Practices.Unity.ResolutionFailedException に関する問題があります。

手動で開始した場合、正常に動作します。

しかし、Windowsのタスクスケジューラで起動しようとすると、

と言いました

「ResolutionFailedException は処理されませんでした」

依存関係の解決に失敗しました。タイプ = "MainPresenter"、名前 = "(none)"。例外が発生しました: コンストラクター XX.Main() を呼び出しています。例外は次のとおりです: FormatException - 入力文字列が正しい形式ではありませんでした。

これは私のコードです:

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
using (IUnityContainer container = new UnityContainer())
{
  container.RegisterType<IMainView, Main>();
  MainPresenter presenter = container.Resolve<MainPresenter>();
  Application.Run((Form)presenter.View);
}

メインコード:

public partial class Main : Form, IMainView
{
    public Main()
    {
    }
}

IMainView コード:

public interface IMainView
{
}

MainPresenter コード :

public class MainPresenter
{
    public MainPresenter( IMainView view )
    {
        this.view = view;
    }
    public IMainView View
    {
        get { return view; }
    }
    private readonly IMainView view;
}

プログラムコード:

static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        /// 

        [STAThread]
        static void Main()
        {

            bool bNew;
            Mutex mutex = new Mutex(true, "XX", out bNew);

            if (bNew)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                using (IUnityContainer container = new UnityContainer())
                {
                    container.RegisterType<IMainView, Main>();
                    MainPresenter presenter = container.Resolve<MainPresenter>();
                    Application.Run((Form)presenter.View);
                }
            }
            else
            {
                Application.Exit();
            }
        }
    }

ありがとう。

4

0 に答える 0