Хорошо, я знаю, что я очень новичок в удаленном взаимодействии .NET, и у меня есть вопрос относительно наилучшей практики. Во-первых, у меня уже есть собственное приложение, которое я создал, и у меня есть DLL, на которые я ссылаюсь, которые обрабатывают все данные для меня. Я хочу, чтобы версия моего приложения на сервере могла использовать все эти классы и их методы и передавать эти пользовательские объекты туда-сюда.
Мой вопрос заключается в том, должен ли я применять [Serializable] ко всем моим классам, которые я хочу передавать взад и вперед, а затем создавать специальные классы, которые специально используют мои методы для Get, AddOrUpdate, Delete и т. Д.?
Прямо сейчас у меня есть методы Get, AddOrUpdate и Delete во всех моих классах, которые обмениваются данными с моей базой данных. Я уже узнал, что я не могу MarshalByRefObject & [Serializable] для всех этих классов, или я столкнусь с проблемами. Вот почему я думаю, что мне нужно создать отдельные классы, которые выполняют «Управление» (например, Get, AddOrUpdate, Delete), в отличие от наличия определений свойств, а также вызовов методов.
Пример того, что я думаю, должен быть сделан.
[Serializable]
public class Users {
#region Properties...
private int _userID;
private string _displayName;
private string _userName;
private string _firstName;
private string _lastName;
private string _LogOnPassword;
private List<Users> _Associates = new List<Users>();
private AuthenticationLevel _authorizationLevel;
private string _userSettingsXML;
private string _active;
private string _signature;
private int _PhoneExtension;
private int _Index;
private List<UserAssignedRoles> _Roles = new List<UserAssignedRoles>();
Тогда для создания списка мне нужен отдельный класс, называемый UserManagement.
public class UserManagement : MarshalByRefObject {
public List<Users> GetUsers() {
}
}
Любой совет с благодарностью!