伊莉討論區

標題: 如何選擇僅開放dll中的某些usercontrol出來給別人用? [打印本頁]

作者: opchta    時間: 2019-6-8 11:25 AM     標題: 如何選擇僅開放dll中的某些usercontrol出來給別人用?

一般來說,寫大型的專案時,常常是將自己寫的功能包成dll,最後再給團隊的其他人使用,而且在寫功能時,也常使用usercontrol包usercontrol。
但小弟目前遇到一個問題,就是我dll中有四個usercontrol,
分別是A、B、C、D,但A、B、C三個usercontrol都是中繼的usercontrol,
usercontrol D包含了A、B、C三個usercontrol,
真正要給別人用的是usercontrol D,
請問有沒有辦法在給別人dll的時候,
別人只看得到我們想給他們用的usercontrol D,
其他的都看不到也無法引用呢?



作者: zxc7827691    時間: 2019-6-29 03:52 AM

存取範圍

internal的存取範圍是相同組件(Assembly)都可以使用,白話一點講就是internal可以在同一個dll內存取。


用 internal 把不想給別人看到的 class 保護起來,要給別人用的用 public
最後再包成 dll 給別人用就行了!

Assembly1.cs
  1. // Assembly1.cs  
  2. // Compile with: /target:library  
  3. internal class BaseClass   
  4. {  
  5.    public static int intM = 0;
  6. }  
複製代碼


Assembly1_a.cs

  1. // Assembly1_a.cs  
  2. // Compile with: /reference:Assembly1.dll  
  3. class TestAccess   
  4. {  
  5.    static void Main()   
  6.    {  
  7.       BaseClass myBase = new BaseClass(); // 錯誤,不能存取
  8.    }  
  9. }  
複製代碼





作者: opchta    時間: 2019-7-14 04:16 PM

zxc7827691 發表於 2019-6-29 03:52 AM
存取範圍

internal的存取範圍是相同組件(Assembly)都可以使用,白話一點講就是internal可以在同一個dll內 ...

喔喔~~~~瞭解
這個我有想到,在winform上我有試過,可以直接改。
但我現在用的是wpf,如果直接改會出現錯誤訊息吔




歡迎光臨 伊莉討論區 (http://a15.eyny.com/) Powered by Discuz!