Свойство WCF не видно на клиенте - PullRequest
0 голосов
/ 13 сентября 2010

В настоящее время я занимаюсь разработкой службы WCF .net 4.0, которая имеет 2 свойства. По какой-то причине эти свойства не видны на клиенте.

Ниже приведен код услуги.

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
    }
}

Я где-то читал в Интернете, что свойство частичного доверия должно быть определено как «внутреннее», и добавляю атрибут [assembly: InternalsVisibleTo («System.Runtime.Serialization»)] в AssemblyInfo.cs в контракте на обслуживание.

Я что-то не так делаю из-за того, что эти свойства не видны на сервере?

Любое предложение ценится

Спасибо

1 Ответ

0 голосов
/ 13 сентября 2010

Вы смешиваете две разные вещи:

  • У вас могут быть услуги, которые отмечены атрибутом ServiceContract. У сервиса есть набор методов, которые вы хотите использовать через OperationContract s.
  • Сервисный метод может возвращать или принимать объекты, которые вы украшаете атрибутом DataContract. В контрактах данных есть члены, которые должны использовать атрибут DataMember.

Теперь у вас есть контракт на обслуживание с членами данных. Это не имеет смысла.

Вот еще несколько ссылок для услуг и контрактов данных .

...