我们有一些ASP.NET的东西(它没有清楚地描述为称它为一个组件),我们希望清理并围绕一些边界,以便我们可以重复使用它。实际上,这有四个部分,一些标记,一些C#代码隐藏,一些在浏览器中运行的JavaScript,以及由javascript调用的web服务方法。共享程序集(DLL)中的ASP.NET webservices
清除这个问题的一种方法是将标记移动到用户控件中,将C#转换为用户控件的代码隐藏方法,将javascript转换为代码中将包含在页面中的文件,后面的方法,并将webservice转换为代码隐藏的静态方法。 (当然,假设我可以将用户控件中的静态方法标记为WebMethod并使其工作,但我还没有尝试过。)
无论如何,以上都不适用于我们,因为我们想创建一个可以包含在多个项目中的组件。这意味着我们需要一个我们可以包含在DLL中的组件,这意味着一个服务器控件,而不是一个用户控件。
服务器控件当然没有标记。 html需要通过C#注入页面。这不是问题,我们之前已经完成了。将javascript包含为资源,并将Server Control插入到页面中似乎并不困难。我还没有做到,但是我看到了很多关于如何做的例子,所以我相信我能弄明白。
但是这个我不确定我理解的部分,但是,是web服务。这个控件将包含JavaScript,这将使得调用回到web服务。 Web服务将只与服务器控件通信,但它需要与包含服务器控件的Web应用程序正在交谈的同一数据库进行通信。也就是说,在这种情况下,我们可以配置一个独立的Web服务,以使服务器控件的所有实例都可以与之通话,我们需要在包含服务器控件的每个Web应用程序中包含一个单独的Web服务。
问题是,既然服务器控件包含在一个DLL中,我们希望这个web服务的代码也包含在DLL中。现在,我所能想到的只是在DLL中定义一个类,它完成了web服务所需的所有工作,然后可以通过我们在Web应用程序中定义的web服务来调用它。但我对此并不满意。在我理想的世界中,只需在Web应用程序中包含服务器控件就可以自动包含和配置它需要与之交谈的Web服务。但我不知道该怎么做,我不确定这是可能的。
因此,我正在寻找的是在ASP.NET 3.5中可以接近的程度。
想法?
我喜欢这个问题的答案没有任何投票。 – 2014-08-08 20:15:41