Tôi có vấn đề này cùng bởi vì tôi đã tạo ra một DLL tùy chỉnh và chỉ muốn lớp học nhất định để được hiển thị cho một ứng dụng bằng cách sử dụng DLL. Vì vậy, tôi chỉ cần loại bỏ các sửa đổi hoàn toàn cho các lớp học tôi muốn được tư nhân (trong không gian tên cụ thể).Các lớp vẫn có thể truy cập đến các lớp khác trong cùng một không gian tên trong DLL nhưng không hiển thị trong Intellisense trong ứng dụng gọi. Không cần cho các lớp lồng nhau. Lời giải thích duy nhất tôi có thể nghĩ đến là thông báo lỗi nói rằng không thể "tuyên bố rõ ràng" riêng tư ... nó không nói bất cứ điều gì về ngầm.
namespace SmartCardAuthentication
{
class SmartCardIdentity : IIdentity
{
private string _firstName;
private string _lastName;
private string _middleInitial;
....
}
}
Ví dụ mã ở trên, lớp "SmartCardIdentity" có sẵn cho lớp khác trong cùng một không gian tên nhưng không khả dụng cho ứng dụng gọi khi lớp này được đưa vào DLL. Tôi đã không kiểm tra nó theo cách khác (tức là khả năng hiển thị từ một lớp trong một không gian tên khác trong tệp DLL.).
Điều gì sẽ xảy ra nếu tôi muốn lớp chỉ hiển thị cho các lớp trong một không gian tên cụ thể? làm thế nào để làm điều đó, mà không cần phải di chuyển lớp bên trong một lớp khác? – Ahmed
Về cơ bản bạn không thể. Đây sẽ là một tính năng kỳ lạ nếu bạn hỏi tôi, vì cùng một không gian tên có thể tồn tại trong nhiều assembly chẳng hạn. – DeCaf
Cảm ơn, tôi đoán java có một cái gì đó như truy cập cấp gói hoặc tương tự, tôi sẽ xem xét nó .. – Ahmed