我正在使用OpenNetCF's IoC framework,我的Program类中的代码如下所示:
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方法,所以我在它上面设置了一个断点:
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的定义。
这打开了一个与我期待的文件截然不同的文件:
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 \应用程序数据\本地\ TEMP \ 7212 $ $ OpenNETCF.IoC.UI.dll V2.0.50727 \ OpenNETCF.IoC.UI.SmartClientApplication.cs
所以这解释了为什么它没有达到断点,但我想知道的是为什么它甚至会看到这个疯狂的文件,而不是应该是它。
答案 0 :(得分:2)
听起来您在开发计算机上有多个源和PDB副本。如果你构建了一个IoC示例,那么将文件夹批发(包括obj和bin文件夹)复制到应用程序的路径上,这可能会发生。
解决方案(或至少是一个开始)是执行以下操作: