2 На самом деле вопросы, и я не уверен, правильно ли я это делаю или нет ...
Я хочу отправить какой-то массив для созданного мною объекта Entity.Я не совсем уверен, как пометить его для отправки (какие атрибуты нужны или что-то еще), и я не совсем уверен, как отправить его обратно (IList, List, Collection, ICollection).
В идеалеЯ хотел бы иметь возможность отправить обратно ObservableCollection, но сработает ли это, если клиент, который хочет использовать службу, не находится в .NET?
[ServiceContract(Namespace = "http://www.tempuri.com/MyService",
ConfigurationName = "IMyService")]
public interface IMyServie
{
[OperationContract(Action = "http://www.tempuri.com/MyService/GetUsers",
ReplyAction = "*")]
[XmlSerializerFormat(SupportFaults = true)]
GetUsersResponse GetUsers(GetUsersRequest request);
}
[MessageContract(IsWrapped = false)]
public sealed class GetUsersRequest
{
public GetUsersRequest() { }
public GetUsersRequest(Int32 record = -1)
{
Record = record;
}
[MessageBodyMember(Namespace = "", Order = 0)]
public Int32 Record { get; private set; }
}
[MessageContract(IsWrapped = false)]
//[ServiceKnownType(??)]
public sealed class GetUsersResponse
{
public GetUsersResponse() { }
public GetUsersResponse(PersonEntity[] entities)
{
Entities = entities;
}
[MessageBodyMember(Namespace = "", Order = 1)]
//[XmlElement(DataType = "??")]
public PersonEntity[] Entities { get; private set; }
//Should this have been some other type of array-type (Collection, List, etc?)
}
//Does this need any attributes besides Serializable?
[Serializable()]
public PersonEntity : AbstractEntity
{
public PersonEntity() { }
public PersonEntity(Int32 id = 0, String fname = "", String lname = "")
{
ID = id;
FirstName = fname;
LastName = lname;
}
public String FirstName { get; set; }
public String LastName { get; set; }
//Functionality (Clone, Clear, Default, Equals, etc) Removed...
}
[Serializable()]
public abstract class AbstractEntity : IEntity
{
public Int32 ID { get; set; }
//Abstracts or Implements some functionality...
}
public interface IEntity
{
//Defines functionality requirements
}