好的,鉴于这里的进一步澄清是我会做的。
与GraemeF提出的问题保持一致,做你想做的事情是脆弱的,并且最好是打破。
因此,一般的做法是将设计时间数据支持视为完全不同的方法,然后运行时数据支持。很简单,你在你的设计时间环境和这个数据库之间创建的耦合是一个坏主意。
为了简单地提供可视化的设计时间数据,我更愿意使用遵循通用接口作为运行时类的模拟类。这给了我一种显示数据的方式,我可以确保它是正确的类型,并符合与运行时对象相同的合同。然而,这是一个完全不同的类,用于设计时支持(并且经常用于单元测试)。
举例来说。如果我有需要展示个人详细信息,如名字,姓氏和电子邮件运行时类:
public class Person()
{
public String FirstName { get; set;}
public String LastName {get; set;}
public Email EmailAddress {get; set;}
}
,我被填充在运行时从一个DB这个对象,但还需要提供一个设计的实时可视化我想介绍一个IPerson接口定义的合同坚持,即强制执行的财产的getter存在:
public interface IPerson()
{
String FirstName { get; }
String LastName { get; }
Email EmailAddress { get; }
}
然后我会更新我的运行Person类实现该接口:
public class Person() : IPerson
{
public String FirstName { get; set;}
public String LastName {get; set;}
public Email EmailAddress {get; set;}
}
然后我会创建一个实现相同的界面和设计时使用
public MockPerson() : IPerson
{
public String FirstName { get { return "John"; } }
public String LastName { get { return "Smith"; } }
public Email EmailAddress { get { return new Email("[email protected]"); } }
}
提供合理值的模拟类然后,我会实现一种机制,以提供在设计时MockPerson对象,并在运行时的实际Person对象。类似于this或this。这提供了设计时间数据支持,而不需要运行时间和设计时间环境之间的严格依赖关系。
这种模式非常灵活,可以让您在整个应用程序中提供一致的设计时间数据支持。
你是指可执行文件的路径吗? – Pieter888 2009-11-27 13:47:38
是的,没错。 – luvieere 2009-11-27 13:57:33