我目前正在开发一个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 } }
我在互联网上的某处读到,部分信任属性需要定义为“内部”,并在服务合同中的AssemblyInfo.cs中添加[assembly:InternalsVisibleTo(“System.Runtime.Serialization”)]属性。
我做错了什么,因为服务器上看不到那些属性?
任何建议都是适当的
由于
答案 0 :(得分:0)
你混淆了两件事:
ServiceContract
属性修饰的服务。服务具有一组您希望通过OperationContract
s。DataContract
属性装饰的对象。数据协定的成员应使用DataMember
属性。您现在拥有的是与数据成员签订的服务合同。这没有意义。
以下是services和data contracts的更多链接。