Вопрос о внешних библиотеках и пространствах имен - PullRequest
2 голосов
/ 27 декабря 2010

В библиотеке классов, которую я создаю, я включаю файлы из HtmlAgilityPack . Мой вопрос: я должен обернуть мое пространство имен вокруг классов HtmlAgilityPack? Например:

namespace HtmlAgilityPack {
    internal... // blah blah blah

}

становится:

namespace MyNamespace {
    namespace HtmlAgilityPack {
        internal... // blah blah blah

    }
}

Я думаю сделать это, чтобы предотвратить конфликты в проектах, которые уже используют HtmlAgilityPack. Есть ли другая причина, чтобы сделать это? Спасибо,

Ответы [ 3 ]

1 голос
/ 27 декабря 2010

Пользователи должны иметь возможность уникально идентифицировать имена классов, используя пространства имен, вот и вся идея пространств имен, в первую очередь imo. Есть обходные пути, такие как псевдонимы, но я бы не стал вводить эту проблему для пользователей вашей библиотеки. В таком случае я бы обернул пространство имен HtmlAgility, как вы предложили.

1 голос
/ 27 декабря 2010

Вместо того, чтобы делать:

namespace MyNamespace {
    namespace HtmlAgilityPack {
        internal... // blah blah blah

    }
}

делать

namespace MyNamespace.HtmlAgilityPack 
{
        internal... // blah blah blah
}

это обычный способ, да, делать это хорошо, и из-за этого пространства имен живы.

1 голос
/ 27 декабря 2010

Нет, я не думаю, что вам нужно беспокоиться об этом.Для проектов, которые уже используют HtmlAgilityPack, вы можете просто поделиться с ними пространством имен HtmlAgilityPack.Я не вижу здесь проблемы конфликта.

...