首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SmartClientApplication中,OpenNetCF.IoC无法点击start

在SmartClientApplication中,OpenNetCF.IoC无法点击start
EN

Stack Overflow用户
提问于 2012-01-06 07:36:05
回答 1查看 347关注 0票数 2

我使用的是OpenNetCF's IoC framework,我的Program类中的代码如下:

代码语言:javascript
复制
public class Program : SmartClientApplication<Container>
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [MTAThread]
        static void Main()
        {
            if (!string.Equals(RegionInfo.CurrentRegion.EnglishName, "New Zealand") ||
                !string.Equals(TimeZone.CurrentTimeZone.StandardName, "New Zealand Standard Time"))
            {
                MessageBox.Show("Please set your regional and time zone settings to New Zealand.");
                return;
            }

            AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;

            new Program().Start();
        }

        static void CurrentDomainUnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            if (Debugger.IsAttached)
            {
                Debugger.Break();
            }
        }
    }

我已经将OpenNETCF复制到我的解决方案中,我预计当调用Program().Start()时,它会跳转到这里的start方法,所以我在它上面设置了一个断点:

代码语言:javascript
复制
public abstract class SmartClientApplication<TShell>
    where TShell : Form
{
    /// <summary>
    /// This method loads the Profile Catalog Modules by calling GetModuleInfoStore which, unless overridden, uses a DefaultModuleInfoStore instance.
    /// It then creates an instance of TShell and calls Application.Run with that instance.
    /// </summary>
    public void Start()
    {
        // load up the profile catalog here
        IModuleInfoStore store = GetModuleInfoStore();

        Start(store);
    }

奇怪的是,它从来没有达到临界点。

我觉得这很奇怪,所以我点击Program导航到SmartClientApplication的继承引用中的定义。

这打开了一个与我期望的文件完全不同的文件,如下所示:

代码语言:javascript
复制
using OpenNETCF.IoC;
using System;
using System.Windows.Forms;

namespace OpenNETCF.IoC.UI
{
    public abstract class SmartClientApplication<TShell> where TShell : System.Windows.Forms.Form
    {
        protected SmartClientApplication();

        public virtual void AddServices();
        protected virtual void AfterShellCreated();
        public virtual IModuleInfoStore GetModuleInfoStore();
        public virtual void OnApplicationRun(Form form);
        public virtual void OnModuleLoadComplete(string moduleName);
        public void Start();
        public void Start(string profileCatalog);
    }
}

名称相同,但内容似乎不包含任何实现。当我看到它的位置时,它是这样的:

C:\Users\myusername\AppData\Local\Temp\7212$OpenNETCF.IoC.UI.dll$v2.0.50727\OpenNETCF.IoC.UI.SmartClientApplication.cs

所以这就解释了为什么它没有命中断点,但我想知道的是,为什么它甚至要查看这个疯狂的文件,而不是它应该是的文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-06 08:11:21

听起来您的开发机器上有源代码和PDB的多个副本。如果你构建了一个IoC示例,然后批量复制了文件夹,包括obj和bin文件夹,就可能发生这种情况。

解决方案(或者至少是开始)是执行以下操作:

  • 从项目中删除IoC引用
  • Build以生成错误
  • 打开资源管理器并从解决方案树中删除所有obj和bin文件夹
  • 重新添加obj
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8751495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档