Тип или имя пространства имен «GetName» не существует в пространстве имен - PullRequest
0 голосов
/ 24 мая 2019

Следующий код выполняется в простой демонстрационной версии, но он не компилируется в моем реальном проекте.

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string AgentName = "Test";
            string SERVICE_NAME = "Agent";
            ServiceController sc = new ServiceController(AgentName);
            ServiceControllerStatus status = sc.Status;
            Debug.WriteLine(String.Format("Service {0} {1}", SERVICE_NAME, 
                // compile error this next line: 
                Enum.GetName(typeof(ServiceControllerStatus), sc.Status))); 
        }
    }
}

Сообщение об ошибке:

Тип или имя пространства имен 'GetName' не существует в пространстве имен 'UtilLibrary.Enum'

Если я изменю верхнее пространство имен в файле (в реальном проекте) с UtilLibrary на что-то другое, например UtilityLibrary, оно будет хорошо скомпилировано. Кажется, что есть конфликт с GetName(), но это не так, в поиске ничего не появляется.

Так как же мне остаться в том же пространстве имен и исправить ошибку компиляции?

p.s Я новичок в c #. Также, если добавить точку для изменения пространства имен, например UtilLibrary.General, это все равно не исправит ошибку.

1 Ответ

0 голосов
/ 25 мая 2019

Несмотря на то, что это не лучшая практика, вы всегда можете указать псевдоним для решения проблем с именами

using SysEnum = System.Enum;
using LibEnum = Some.Custom.Library.Enum;

//Usage
SysEnum.GetName(typeof(ServiceControllerStatus), sc.Status)));
LibEnum.WhateverMethodIsImplementedHere();

Помните, что обычно лучше исправить имя, если это ваш код.

...