0

將一個服務引用添加到項目中被接受的服務是在同一VS項目中定義的,是否可接受的編程習慣? (服務和服務引用在相同的計劃)在同一個項目中添加對WCF服務的服務引用

例如:

MyWebAppProj
-Services
--MyService
-Service參考
--MyServiceServiceReference.MyServiceClient
-Default.aspx。 cs使用MyServiceServiceReference.MyServiceClient

這背後的理由是可以將Silverlight應用程序添加到項目中。如果是這樣,我們將不得不通過服務層公開所有的業務邏輯方法,爲什麼不首先做到這一點,並將它們用於任何地方,以便在網頁和Silverlight頁面之間保持標準化。

回答

5

我看不出爲什麼你想這樣做。

如果你已經在同一個項目的服務中,起碼你已經有了訪問所有服務/數據的合同,所以真的,調用該服務已經非常,非常容易。您可以直接使用的ChannelFactory,或寫自己的自定義ClientBase <牛逼>派生客戶端代理類(這是微不足道的),有沒有理由,你爲什麼會想在這種情況下,添加服務引用。此外,如果您添加了服務引用,那麼您會在同一個項目中遇到一堆重複的定義,這沒什麼意義(是的,您可以將生成的代碼隔離到單獨的名稱空間中,但仍然)。

+0

同意。我以爲我讓這個太複雜了。但是,ChannelFactory或ClientBase甚至有必要嗎?我可以在Default.aspx.cs中這樣做: MyService serv = new MyService(); serv.DoSomething(); 儘管我可以在Default.aspx.cs代碼中直接執行與DoSomething()方法相同的操作,但我仍然希望這樣做可以使代碼在SL和ASP.NET之間保持標準化。 – 2010-01-26 18:51:52

+0

如果服務類實際上並不需要任何WCF基礎結構(就像訪問OperationContext或其他東西一樣),那麼是的,你可以直接實例化並調用它。好多了。 – tomasr 2010-01-27 12:31:21

相關問題