У меня возник вопрос о проблеме с L2S, Autogenerated DataContext и использовании Partial Classes. Я абстрагировал свой datacontext, и для каждой используемой таблицы я реализую класс с интерфейсом. В приведенном ниже коде вы видите, что у меня есть интерфейс и два частичных класса. Первый класс - это просто, чтобы убедиться, что класс в автоматически генерируемом datacontext inherets Interface. Другой автогенерируемый класс обеспечивает реализацию метода из интерфейса.Проблема с реализацией интерфейса в частичных классах
namespace PartialProject.objects
{
public interface Interface
{
Interface Instance { get; }
}
//To make sure the autogenerated code inherits Interface
public partial class Class : Interface { }
//This is autogenerated
public partial class Class
{
public Class Instance
{
get
{
return this.Instance;
}
}
}
}
Теперь моя проблема заключается в том, что метод, реализованный в сгенерированном классе дает следующее сообщение об ошибке: -> Свойство «Instance» не может реализовать свойство из интерфейса «PartialProject.objects.Interface». Тип должен быть «PartialProjects.objects.Interface». < -
Любая идея, как эта ошибка может быть решена? Имейте в виду, что я ничего не могу редактировать в автогенерированном коде.
Заранее благодарен!
Это именно то, что я искал:] Спасибо большое! Отлично работает – Bas
Проголосовал. Спасибо за хорошее решение. Я почти «взломал» свою голову, пытаясь обойти ограничения, налагаемые интерфейсами. –
На всякий случай, когда кто-то сталкивается со следующей ошибкой после реализации вышеуказанного решения, посмотрите [здесь] (http://stackoverflow.com/questions/2669031/compilation-error-the-modifier-public-is-not-valid-for- this-item-while-crea): модификатор «public» недействителен для этого элемента - в основном удаляет все модификаторы доступа, поскольку эти свойства будут принудительно закрыты (что имеет смысл, когда вы думаете об этом). – dyslexicanaboko