我有2個項目,一個網站和一個代理庫(DLL)如何限制對C#中特定類的訪問?
代理項目有..
public class Client
{
}
public class Proxy
{
public Client GetClient()
{
return new Client();
}
}
我怎樣才能使網站從創建客戶端的新實例,但允許它來創建代理的一個實例,仍然運行GetClient?
我有2個項目,一個網站和一個代理庫(DLL)如何限制對C#中特定類的訪問?
代理項目有..
public class Client
{
}
public class Proxy
{
public Client GetClient()
{
return new Client();
}
}
我怎樣才能使網站從創建客戶端的新實例,但允許它來創建代理的一個實例,仍然運行GetClient?
您可以更改客戶端:
internal class Client
{
}
這樣的網站項目甚至無法看到客戶端類,或者你可以這樣做:
public class Client
{
internal Client()
{
}
}
這樣的網站可以看到它並與其交互,但實際上並不構建實例。
如果你不希望能夠創建客戶端的新實例,考慮要麼使得客戶端的靜態或使用Singleton模式
創建一個公共接口IProxy
。確保它有你想公開公開的Proxy
的所有方面。
有Proxy
實施IProxy
。
使Proxy
internal
(或甚至私人和嵌套類Client
,如果適用)。
可以使用Singleton模式,或在您的客戶端類聲明internal
構造
你需要有客戶端類的只有一個實例,所有的時間? – ppetrov 2013-04-04 20:52:15