Làm thế nào tôi có thể nhận được tất cả các lớp trong một không gian tên trong C#?Làm thế nào tôi có thể nhận được tất cả các lớp trong một không gian tên?
Trả lời
Bạn sẽ cần làm điều đó "ngược"; liệt kê tất cả các loại trong một lắp ráp và sau đó kiểm tra không gian tên của từng loại:
using System.Reflection;
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
return
assembly.GetTypes()
.Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
.ToArray();
}
Ví dụ về sử dụng:
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
Console.WriteLine(typelist[i].Name);
}
Đối với bất cứ điều gì trước khi Net 2.0 nơi Assembly.GetExecutingAssembly()
không có sẵn, bạn sẽ cần một giải pháp nhỏ để có được lắp ráp:
Assembly myAssembly = typeof(<Namespace>.<someClass>).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "<Namespace>");
for (int i = 0; i < typelist.Length; i++)
{
Console.WriteLine(typelist[i].Name);
}
.Where (t => String.Equals (t.Namespace, nameSpace, StringComparison.Ordinal) – abatishchev
Ngoài ra, giữ trong nhớ rằng Assembly! = namespace - một số không gian tên được lan truyền trên nhiều assembly. – Bevan
và tại sao không trả lại chỉ một số điện thoại IE2 có thể
Với Reflection bạn cal lặp qua tất cả các loại trong một assembly. Một loại có một tài sản Namespace mà bạn sử dụng để lọc chỉ không gian tên bạn quan tâm.
Bạn sẽ cần phải cung cấp thêm một chút thông tin ...
Bạn có nghĩa là bằng cách sử dụng Reflection. Bạn có thể lặp thông qua một hội Manifest và có được một danh sách các loại sử dụng
System.Reflection.Assembly myAssembly = Assembly.LoadFile("");
myAssembly.ManifestModule.FindTypes()
Nếu nó chỉ là trong Visual Studio, bạn chỉ có thể có được danh sách trong cửa sổ IntelliSense, hoặc bằng cách mở Object Browser (CTRL + W , J)
- 1. Làm thế nào để có được tất cả các tên lớp trong một không gian tên trong Ruby?
- 2. Làm thế nào tôi có thể nhận được tất cả các lớp thừa kế của một lớp cơ sở?
- 3. Làm thế nào tôi có thể nhận được tất cả các bộ trong redis?
- 4. làm thế nào tôi có thể liệt kê ra tất cả các không gian tên trong XML?
- 5. Làm thế nào tôi có thể nhận được tất cả các tham chiếu với Reflection + C#
- 6. Làm thế nào tôi có thể nhận được tất cả các ổ đĩa USB (cắm vào)
- 7. Làm thế nào tôi có thể nhận được giá trị của tất cả các ô được chọn trong một DataGridView?
- 8. Lấy ra tất cả các lớp của một không gian tên cụ thể
- 9. Làm thế nào tôi có thể nhận được tất cả các tên trường của Tài liệu Mongoid?
- 10. Làm thế nào tôi có thể nhận được gcc để thêm tiền tố vào tất cả các tên biểu tượng
- 11. Trong PHP, có cách nào để có được tất cả các lớp được khai báo trong một không gian tên cụ thể không?
- 12. Làm thế nào tôi có thể nhận được tất cả các checkins của tôi trong Visual Studio 2010 TFS?
- 13. Làm thế nào để có được tất cả các yếu tố theo tên lớp?
- 14. Làm thế nào để có một điều khiển điền tất cả các không gian có sẵn
- 15. Làm thế nào tôi có thể nhận được một "def" để không tải lại trong clojure?
- 16. Làm thế nào tôi có thể gọi một phương thức tĩnh từ một lớp nếu tất cả những gì tôi có là một chuỗi tên lớp?
- 17. java: lấy tất cả các tên biến trong một lớp
- 18. Trong clojure, làm thế nào tôi có thể undef một var từ một không gian tên?
- 19. Làm thế nào tôi có thể nhập dll của một ++ lớp C bên trong một không gian tên
- 20. Tôi có thể nhận tất cả các trường trong một mục (trong Sitecore) không?
- 21. Làm thế nào tôi có thể buộc một Constructor được định nghĩa trong tất cả các lớp con của lớp trừu tượng của tôi
- 22. Làm cách nào tôi có thể đổi tên tất cả các chỉ mục trong MySQL
- 23. Làm thế nào tôi có thể tìm thấy tất cả các tập quán của một không gian tên và các thành viên của nó?
- 24. Làm thế nào tôi có thể bọc BOOST trong một không gian tên riêng biệt?
- 25. PHP cách nhập tất cả các lớp từ một không gian tên khác
- 26. Làm thế nào để có được tất cả các lớp CSS của một phần tử?
- 27. Làm cách nào để có được tên phương thức với tên không gian và tên lớp?
- 28. Làm thế nào tôi có thể tìm thấy tất cả các tên miền giải quyết cho một địa chỉ IP?
- 29. Làm thế nào tôi có thể quản lý tất cả các cảnh báo trong TFS
- 30. MySQL: làm thế nào tôi có thể thấy tất cả các ràng buộc trên một bảng?
có thể trùng lặp [Lấy tất cả các lớp của một tên cụ thể space] (http://stackoverflow.com/questions/343869/taking-out-all-classes-of-a-specific-namespace) – nawfal
Có thể trùng lặp của [Bắt tất cả các loại trong một không gian tên thông qua sự phản ánh] (https: // stackoverflow.com/questions/79693/getting-all-types-in-a-namespace-via-reflection) – Liam