Я делаю довольно обширные и постоянные модификации стороннего продукта для моего работодателя. Одним из основных соображений при реализации моего кода было его максимальное разделение, чтобы сделать интеграцию изменений от поставщика максимально безболезненной. До сих пор одним из наиболее полезных инструментов для достижения этой цели был разделяемый класс. Используя частичные классы, я могу хранить любые новые методы, которые мне нужно реализовать, в их собственном файле.
Но сегодня я столкнулся с икотой, которую мне нужно как-то решить. Допустим, мне нужно расширить следующий интерфейс.
public partial interface ICondition
{
void MethodA();
void MethodB();
}
сделав интерфейс частичным и добавив файл с именем ICondition.CompanyName.cs
public partial interface ICondition
{
void MethodC();
}
теперь я хочу реализовать интерфейс так же, как я его объявил, с MethodA()
и MethodB()
, реализованными в одном файле частичного класса, и MethodC()
в другом.
public partial class Condition : ICondition
{
public void MethodA(){ }
public void MethodB(){ }
}
и мой класс Condition.CompanyName.cs
public partial class Condition : ICondition
{
public void MethodC() { }
}
Это, конечно, не работает, так как интерфейс должен быть реализован в одном файле. Я надеюсь, что есть какое-то объявление или немного магии синтаксиса, о которой я не знаю, что позволит мне делать то, что я хочу, и хранить эти методы в отдельных файлах, но с одним и тем же интерфейсом.
Редактировать
Это действительно работает, моя проблема заключалась в том, что у меня было два частичных класса в разных пространствах имен из-за глупой опечатки. Я начал немного слишком рано сегодня утром, я полагаю, спасибо всем за ваше время и внимание.
ref
в ответе чуть раньше... Я имею в виду, как?!? - person Adam Houldsworth   schedule 19.08.2011