Если строки предназначены для просмотра пользователями класса, поместите их в класс. В противном случае скройте их в безымянном пространстве имен файла реализации.
Если вы используете .Net 3.5, вы можете попробовать вернуть вместо него XElement - это реализует IXmlSerializable , который является недостающим ингредиентом, необходимым для его создания. работать с DataContractSerializer.
DataContractSerializer может сериализовать экземпляры XmlElement. Поэтому просто верните свойство DocumentElement вашего экземпляра XmlDocument. См .: MSDN .
Я бы посоветовал загрузить исходный код CSLA и образцы (особенно образец ProjectTracker) и взглянуть на код. Для меня лучший способ быстро чему-то научиться - это что-то построить.
Чтобы начать писать объекты, начните с создания инфраструктуры портала данных.
например, вот базовый объект CSLA:
[Serializable()]
public class Widget : Csla.BusinessBase<Widget>
{
private Widget()
{
}
}
Следующий шаг к созданию портала данных состоит в том, чтобы определить, как может выглядеть выборка для вашего объекта. Например, вы хотите получить объект на основе его идентификатора, имени, категории или какого-либо другого свойства. Вот пример того же объекта с реализованным методом фабрики выборки:
[Serializable()]
public class Widget : Csla.BusinessBase<Widget>
{
private Widget()
{
}
public static Widget Fetch(int id)
{
return Csla.DataPortal.Fetch<Widget>(new Csla.SingleCriteria<Widget, int>(id));
}
}
Следующим шагом будет создание метода портала данных, который создаст портал данных CSLA.
[Serializable()]
public class Widget : Csla.BusinessBase<Widget>
{
private Widget()
{
}
public static Widget Fetch(int id)
{
return Csla.DataPortal.Fetch<Widget>(new Csla.SingleCriteria<Widget, int>(id));
}
private void DataPortal_Fetch(Csla.SingleCriteria<Widget, int> criteria)
{
// Connect to database (or use ORM) and populate the object here based on the criteria.Value which is the id value
}
}
После этого следующим шагом будет определение ваш бизнес-объект со свойствами и т. д.