Estoy trabajando con una aplicación WPF en C#. Tengo una serie de constantes definidas en una clase estática como la siguiente:¿Cómo acceder a una clase estática en el mismo espacio de nombres pero a otro ensamblado?
Proyecto1:
namespace MyCompany
{
public static class Constants
{
public static int MY_CONSTANT = 123456;
}
}
Entonces todo lo que tengo que hacer para acceder a mi constante en cualquier lugar dentro del Proyecto 1 es:
int x = Constants.MY_CONSTANT;
Ahora añado otro proyecto a la misma solución, y utilizar el mismo espacio de nombres raíz:
proyecto 2
namespace MyCompany.MyControl
{
class VideoControl
{
int x;
x = Constants.MY_CONSTANT; //<-- doesn't work
x = MyCompany.Constants.MY_CONSTANT; //<-- doesn't work either
}
}
No puedo encontrar una manera de acceder a mi clase de constantes estáticas desde el segundo ensamblaje. Tampoco puedo agregar una referencia al primer ensamblaje, porque conduce a una dependencia circular (el segundo ensamblaje del proyecto es un control WPF utilizado por el primer ensamblaje del proyecto).
¿Es lo que estoy tratando de hacer posible? Actualmente mi solución está pasando todas las constantes requeridas en el constructor, pero prefiero simplemente acceder a ellas directamente.
Necesita una referencia; necesitará resolver su dependencia circular; tal vez traslade la clase de constantes a un tercer ensamblaje al que puedan hacer referencia ambos ensamblajes. – Blorgbeard
al lado del punto: si quiere una constante, ¿por qué no la declara como constante 'const int pública MY_CONSTANT = 123456;'? – Hinek