Я работаю над проектом с WSDL, который использует XSD-файлы для генерации классов C #.WSDL не определяет все классы, описанные в файлах XSD, и мне нужно включить некоторые из них в вызовы, которые я делаю с WSDL.Я могу использовать инструмент определения схемы XML для файлов XSD, чтобы сгенерировать остальные классы, которые мне нужны, но из-за зависимостей созданный файл содержит классы, которые также генерируются при использовании WSDL.
Существуют сотни классов, которые перекрываются в двух файлах .cs (эталонный файл, сгенерированный WSDL, и файл, сгенерированный инструментом XSD), поэтому, когда эти два файла импортируются в проект с использованием,Есть столкновения.Есть ли способ проанализировать оба файла .cs и найти перекрывающиеся классы?В конечном счете, я хотел бы удалить перекрывающиеся или скопировать неперекрывающиеся в reference.cs, так что используйте классы, которые мне не хватает.
В качестве примера представим, что следующие классы сгенерированы с помощью WSDL из некоторых XSD-файлов, мы назовем это FromWSDL.cs:
namespace SomeXSDDefinedName
{
class Fleet
{
List<Car> Cars { get; set; }
}
class Car
{
string Make { get; set; }
}
}
Теперь мне нужно использовать некоторые классыиз другого XSD, который ссылается на те же файлы классов / XSD, что и WSDL.Поэтому, если я использую Инструмент определения схемы XML для генерации классов C # из XSD, я получу файл, подобный этому, мы назовем его FromXSD.cs:
namespace SomeXSDDefinedName
{
class Fleet
{
List<Car> Cars { get; set; }
}
class Car
{
string Make { get; set; }
}
class Truck
{
int Payload { get; set; }
}
class Driver
{
Car Car { get; set; }
}
}
То, что я хочу, это способпрограммно (сценарий или что-то еще) найти классы, присутствующие в файле FromXSD.cs, которых нет в файле FromWSDL.cs, а затем вывести их либо в отдельный файл, либо в файл FromWSDL.cs.В этом случае Truck and Driver из файла FromXSD.cs.Поскольку они создаются из одних и тех же файлов XSD с помощью WSDL или инструмента XSD, каждый файл имеет одинаковые пространства имен и имена классов, что делает невозможным добавление ссылок на оба файла с использованием.