Tôi đang làm việc với một ứng dụng WPF trong C#. Tôi có một số hằng số được định nghĩa trong một lớp tĩnh như sau:Làm thế nào để truy cập vào một lớp tĩnh trong cùng một không gian tên nhưng một hội đồng khác?
Project1:
namespace MyCompany
{
public static class Constants
{
public static int MY_CONSTANT = 123456;
}
}
Sau đó, tất cả những gì cần làm để truy cập vào liên tục của tôi bất cứ nơi nào bên trong dự án 1 là:
int x = Constants.MY_CONSTANT;
Bây giờ tôi thêm một dự án khác vào cùng một giải pháp và sử dụng cùng một không gian tên gốc:
Dự án 2
namespace MyCompany.MyControl
{
class VideoControl
{
int x;
x = Constants.MY_CONSTANT; //<-- doesn't work
x = MyCompany.Constants.MY_CONSTANT; //<-- doesn't work either
}
}
Tôi không thể tìm ra cách để truy cập lớp Constants tĩnh của tôi từ assembly thứ hai. Tôi cũng không thể thêm một tham chiếu đến assembly đầu tiên, bởi vì nó dẫn đến phụ thuộc vòng tròn (assembly thứ hai là một điều khiển WPF được sử dụng bởi assembly đầu tiên).
Là những gì tôi đang cố gắng làm thậm chí có thể? Hiện tại workaround của tôi là đi qua tất cả các hằng số cần thiết trong constructor, nhưng tôi chỉ muốn truy cập chúng trực tiếp.
Bạn cần tham khảo - bạn sẽ cần phải giải quyết phụ thuộc vòng tròn của bạn - có thể di chuyển các hằng số lớp ra thành một hội đồng thứ 3 mà cả hai hội đồng khác có thể tham chiếu. – Blorgbeard
bên cạnh điểm: nếu bạn muốn một hằng số, tại sao bạn không khai báo nó như là một hằng số 'public const int MY_CONSTANT = 123456;'? – Hinek