2010-09-13 5 views
0

Je développe actuellement un service WCF .net 4.0 qui a 2 propriétés. Pour une raison quelconque, ces propriétés ne sont pas visibles sur le client.WCF Propriété non visible sur le client

Voici le code du service.

 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.ServiceModel.Web; 
using System.Text; 
using System.Data; 
using System.IO; 
using System.Configuration; 

using Longview.ScatIt.Data.Model; 
using Longview.ScatIt.Service.Contract; 

namespace Longview.ScatIt.Service 
{ 
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "SqlJob" in code, svc and config file together. 
    [ServiceContract] 
    public class SqlJob : ISqlJob 
    { 

     #region IJob Members 

     [DataMemberAttribute(Name="FileName")] 
     internal string _fileName; 

     [DataMemberAttribute(Name = "Location")] 
     internal string _location; 

     #endregion 
    } 
} 

J'ai lu quelque part sur Internet que dans les biens en fiducie partielle doivent être définis comme « interne » et ajouter [assemblage: InternalsVisibleTo (« System.Runtime.Serialization »)] attribut dans AssemblyInfo.cs dans le contrat de service .

Est-ce que je fais quelque chose de mal en raison de laquelle les propriétés ne sont pas visibles sur le serveur?

Toute suggestion est appriciated

Merci

Répondre

0

Vous confondez deux choses différentes:

  • Vous pouvez avoir des services qui sont décorées avec l'attribut ServiceContract. Un service a un ensemble de méthodes que vous souhaitez exposer via OperationContract s.
  • Une méthode de service peut renvoyer ou accepter des objets que vous décorez avec l'attribut DataContract. Les contrats de données ont des membres qui doivent utiliser l'attribut DataMember.

Ce que vous avez maintenant est un contrat de service avec des membres de données. Cela n'a pas de sens.

Voici d'autres liens pour services et data contracts.