J'ai un service WCF qui génère des objets Entity Framework (ainsi que d'autres structures et classes simples utilisées pour alléger la charge) et les envoie à une application cliente.Envoi d'une définition d'interface sur le réseau (service WCF)
J'ai modifié 2 des classes pour implémenter une interface afin que je puisse les référencer dans mon application en tant que type d'objet unique. Tout comme cet exemple: Is it Possible to Force Properties Generated by Entity Framework to implement Interfaces?
Cependant, le type d'interface est pas ajouté à mon service WCF thingymebob client proxy car il n'est pas référencé directement dans les objets qui sont renvoyés sur le fil.
Par conséquent, dans mon application qui utilise les classes de proxy de service, je ne peux pas jeter ou faire référence à mon interface ..
Toutes les idées que je suis absent?
Voici quelques exemples de code:
//ASSEMBLY/PROJECT 1 -- EF data model
namespace Model
{
public interface ISecurable
{
[DataMember]
long AccessMask { get; set; }
}
//partial class extending EF generated class
//there is also a class defined as "public partial class Company : ISecurable"
public partial class Chart : ISecurable
{
private long _AccessMask = 0;
public long AccessMask
{
get { return _AccessMask; }
set { _AccessMask = value; }
}
public void GetPermission(Guid userId)
{
ChartEntityModel model = new ChartEntityModel();
Task task = model.Task_GetMaskForObject(_ChartId, userId).FirstOrDefault();
_AccessMask = (task == null) ? 0 : task.AccessMask;
}
}
}
//ASSEMBLY/PROJECT 2 -- WCF web service
namespace ChartService
{
public Chart GetChart(Guid chartId, Guid userId)
{
Chart chart = LoadChartWithEF(chartId);
chart.GetPermission(userId); //load chart perms
return chart; //send it over the wire
}
}
Utilisez-vous une référence de service ou une référence Web dans le client? Est-ce que le projet 1 fait référence au projet 2? Je crois que la référence de service réutilisera les types référencés par défaut. – JohnOpincar
Je ne référence pas les types de l'application Service directement dans mon application client. J'avais déjà pensé à le faire plus tôt, mais j'ai décidé de garder le mur entre les deux applications pour minimiser la dépendance. Si j'allais inclure des références à des projets EF/WCF, je pourrais tout aussi bien l'écrire comme une application. – misteraidan