Если коннекторы находятся в разных проектах, эту ситуацию легко решить:
Добавить новый файл класса, назвать его ConnectorCommon и скопировать весь общий код, но с удаленными пространствами имен.Сделайте этот класс частичным классом и переименуйте класс (не файл) во что-то вроде Connector.
Вам нужно будет добавить ссылку на него в каждый проект.
Далее удалите всекод из ваших текущих классов соединителей, переименуйте класс (не обязательно файл) в тот же класс, что и частичный класс, и добавьте оператор using, который ссылается на пространство имен.
Это должно получить то, что вы ищете.
Итак, когда вы закончите, у вас будет:
Файл ConnectorCommon:
public partial class Connector
{
public void GetAllCustomers()
{
var _foo = new FooService();
customerEntity[] customers = _foo.getCustomerList;
foreach (customerEntity customer in customers)
{
GetSingleCustomer(customer);
}
}
public void GetSingleCustomer(customerEntity customer)
{
var id = customer.foo_id;
// etc
}
}
Файл Magento15Connector
using Foo15WebReference;
partial class Connector
{
}
Файл Magento14Connector
using Foo14WebReference;
partial class Connector
{
}
Обновление
Поначалу этот процесс может немного запутать.
Чтобы уточнить, вы делитесь исходным кодом в общем файле между двумя проектами.
Фактические классы - это конкретные классы с пространствами имен в каждом проекте.Вы используете ключевое слово part, чтобы общий файл был объединен с фактическим файлом проекта (т. Е. Magneto14) в каждом проекте, чтобы создать полный класс в этом проекте во время компиляции.
Самая хитрая часть - это добавление общегофайл для обоих проектов.
Для этого выберите меню Add Existing Item...
во втором проекте, перейдите к общему файлу и нажмите стрелку вправо рядом с кнопкой Add
.
В раскрывающемся меню выберите Add as link
.Это добавит ссылку к файлу для второго проекта.Исходный код будет включен в оба проекта, и любые изменения в общем файле будут автоматически доступны в обоих проектах.
Обновление 2
Иногда я забываю, как легко VBвыполняет такие задачи, так как это моя обычная среда программирования.
Чтобы выполнить эту работу в C #, необходимо применить еще один прием: Conditional compilation symbols
.Это делает начало общего кода более многословным, чем мне бы хотелось, но все же гарантирует, что вы можете работать с одним набором общего кода.
Чтобы использовать этот трюк, добавьте символ условной компиляции вкаждый проект (убедитесь, что он установлен на All Configurations
).Например, в проекте Magento14
добавьте Ver14
, а в проекте Magento15
добавьте Ver15
.
Затем в общем файле замените пространство имен структурой, подобной следующей:
#if Ver14
using Magneto14;
namespace Magento14Project
#elif Ver15
using Magneto15;
namespace Magento15Project
#endif
Это обеспечит включение надлежащего пространства имен и использования на основе проекта, в который компилируется общий код.
Обратите внимание, что все общие операторы using
должны быть сохранены вобщий файл (т. е. достаточно для его компиляции).