2012-01-17 60 views
3

我有一個asp.net web服務項目。該項目包含幾個在自己的文件中聲明的類。其中一個類叫做clsUser。Asp.net的web服務,如何保持一些私人成員

的clsUser包括串名字,字符串密碼,並啓用布爾(多了很多,但實際上只是爲了保持簡單)。我希望客戶端代碼的創建者能夠訪問firstName和passWord成員,以便進行更改,但我不希望他們訪問啓用的布爾。

所以我做了firstName和密碼公開,搞得啓用內部(這樣我可以在我的web服務代碼訪問它)。事情是,我必須使用MonoDevelop來在我們的linux服務器上獲得這個.Net Web服務,並且任何聲明爲內部的東西都不會被Mono看到。

有另一種方法可以讓我保持一定的會員在我的web服務代碼訪問,但保持它的客戶端隱藏?

+0

你應該考慮的小代碼事情。 1.在用戶面前放置「cls」。它沒有增加任何內容,並且現在被MS和許多其他人視爲邪惡。 2.關於「密碼」。通常情況下,你可以利用分詞器。密碼實際上是一個單詞,所以正確的方法是把它稱爲「密碼」..除非它是一個公共財產,在這一點上它應該是「密碼」 – NotMe 2012-01-17 21:26:33

回答

1

創建僅包含你願意暴露成員單獨的「代理」級,並從原來的clsUser實例返回,而不是clsUser的實例填充的一個實例。

+0

感謝您的答覆。對不起,請問,但你可以請一個簡短的例子嗎?我想我知道你的意思,但我想100%肯定。 – PaulG 2012-01-19 14:30:33

+0

如果你有一個具有'UserName'和'UserID'和'Password'屬性的類,並且這是你的用戶對象(或其他)的主要'模型',那麼就創建一個名爲'UserLite'的單獨類(或者其他)可以從主類填充,並用作服務的實際返回類型。換句話說,幾乎完全相同的類,除非沒有'Password'屬性。 – kprobst 2012-01-19 18:41:26