这可能是一个很蹩脚的问题,我对ASP.Net缺乏了解。在这种情况下,链接到文章解释将是非常受欢迎的。在ASP.NET中共享几页之间共同功能的方法
我正在使用C#作为代码隐藏在ASP.NET上的网站上工作。我目前的项目涉及开发功能非常类似的几页,许多功能都是一样的。例如
在2页上是相同的。其他一些事情也是一样的。我想把它放到共同的基类中。但也有不真正属于网页的所有其他功能:
private string GetAttachmentTempPath()
{
return Request.PhysicalApplicationPath + WebConfigurationManager.AppSettings.Get("AttachmentsTempFolder");
}
我想这迁入Attachment
类,但要获得应用程序的物理路径,我需要在Request对象传递进入该方法,这并不是很好,因为它将Attachment
类与Page.Request
对象结合在一起。
有没有什么办法可以将这些功能移到别的地方而不需要通过Page.Request
对象?
p.s.应用程序是巨大的,并且没有改变整个架构的余地。
你仍然可以把它放在Attachment类中;附件类的方法可以是:私人静态字符串GetAttachmentTempPath(字符串appPhysicalPath) - 那么你可以简单地从你的项目中的任何地方调用它 - 字符串attachmentTempPath = GetAttachmentTempPath(Request.PhysicalApplicationPath);这样,用于处理附件的代码全都存在于attacment类中,但是当您需要时将实际的数据传递给它(您在初始化类时甚至可以执行此操作)。 – dash
传递对象实际上*低*耦合比依靠HttpContext,恕我直言。 – sq33G
顺便说一句,如果您使用的网站项目微软的官方建议是:http://msdn.microsoft.com/en-us/library/t990ks23.aspx – dash