我的域中有一个简单的地址对象,它有一个ToString()
方法,返回如下地址:
123 Test Ave.
Appt 1A
斯波坎,WA 99201
我们将在几个不同的场合将它放在一个网页上,这样就可以在某个地方添加功能以显示带有Html格式的地址,但是如果我在哪里向我的域类添加ToStringHtmlFormat()
它会开始开始闻起来很有趣。
我可能有点挑剔,但你在哪里/如何建议完成这个以保持我的域类免于任何Html的东西?
感谢您的建议......
答案 0 :(得分:6)
你可以拥有一个能够“访问”域类并打印出来的HTMLWriter。然后,您的域类需要一个Accept方法来接受访问者(访问者模式)。
在灵活性和可维护性方面,我会选择一些包含HTML的模板引擎以及对要打印的属性的访问权限。通常,更复杂的站点也会引入一种称为ViewModel的东西,它可以使UI HTML引擎可以轻松访问的方式准备数据。
答案 1 :(得分:1)
您可以添加扩展方法:
public static class AddressHelpers
{
public static string ToStringHtmlFormat (this Address address)
{
string result = address.Address1;
// snip..
return result;
}
}
现在你可以控制何时&扩展方法包含在项目中的位置(例如:仅在您的Web应用程序中)。