Cómo pasar una variable de un proyecto a otro proyecto C#

Cómo pasar una variable de un proyecto a otro proyecto C#

La solución para cómo pasar una variable de un proyecto a otro proyecto C#
se proporciona a continuación:

Tengo una variable estática dentro de mi proyecto principal (mvc), quiero poder pasar/usar esa variable en mi otro proyecto (asp.net core 5.0 web api). Estaba leyendo sobre cómo puedes realizar esta tarea, una de las formas es usando un static variable que tengo. Leí esta publicación y una de las soluciones menciona que puede llamar a esa variable estática desde el primer proyecto al otro proyecto llamando al espacio de nombres de ese primer proyecto en el primer proyecto. Sin embargo, cuando lo hago no me deja dice que no existe. ¿Hay alguna manera de poder hacer esto?

En la publicación, su ejemplo fue:

using System.Windows.Forms;

namespace Demo1
{
    public class Sample1
    {
        public static string x = "initial value of 'x";

        public void sampleFn1() {x = "value of 'x set in function";}
    }
}

namespace Demo2
{
    public class Sample2
    {
        public void sampleFn2(){MessageBox.Show(Demo1.Sample1.x);}
    }
}

Para mí, el Proyecto 1 es CustomerApp y el Proyecto 2 es Service.Api :

namespace CustomerApp.Controllers
{
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;
        public static Guid uniqueId = Guid.NewGuid();

    }

}

Luego en mi ServiceApi Intenté hacer lo mismo que en el ejemplo de la publicación, pero cuando llamo al espacio de nombres CustomerApp no me da ninguna opción para referenciarlo al otro proyecto. ¿Hay algún uso específico que deba usar para replicar el ejemplo de la publicación?

namespace Service.API.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        private readonly ILogger<ValuesController> _logger;

        public ValuesController(ILogger<ValuesController> logger)
        {
            _logger = logger;
        }

        // GET: api/<ValuesController>
        [HttpGet]
        [Route("sample")]
        public ActionResult Get()
        {
            _logger.LogInformation("Target method invoked.....{@CorrelationId}", CustomerApp.); // here I am trying to perform CustomerApp.Controllers.HomeController.uniqueId.ToString()
        }
    }
}

Creo que olvidó agregar la referencia del proyecto al proyecto de destino donde desea usar la variable,
Agregue una referencia como esta:

haga clic con el botón derecho en su proyecto de destino y seleccione Agregar> Referencia del proyecto

y al final elige la variable proyecto

esto te ayudara

Deberá asegurarse de que la variable estática esté definida en una Biblioteca de clases proyecto, y que el proyecto web tiene una referencia al proyecto Biblioteca de clases.

Por la forma en que su código está construido actualmente, parece que ambos proyectos son proyectos web (su primer proyecto menciona el HomeController ). En la medida de lo posible, evite este tipo de mezcla. Mueva la lógica empresarial a la biblioteca de clases y mantenga la lógica web en el proyecto web.

primero, si no lo ha hecho, agréguelo a la clase HomeController (usando CustomerApp.Controllers.HomeController;). Su propio ejemplo no coincide con el ejemplo al que hace referencia. En el primer ejemplo, se usa una variable estática entre dos clases diferentes en los mismos espacios de nombres, pero en su ejemplo está tratando de operar entre diferentes espacios de nombres y diferentes clases.
Entonces, si su servicio está dentro de su proyecto principal, debe añadir.

entonces puedes usarlo como se muestra a continuación.

public ActionResult Get()
        {
            _logger.LogInformation("Target method invoked.....{@CorrelationId}", HomeController.uniqueId.ToString()); 
        }