标签: datacontract

使用WCF从类库中公开对象

我正在使用一个暴露一些对象的类库.这些对象具有一些属性,可以保存客户端所需的数据.我想创建一个WCF服务,将对象返回给我的客户端,但我无法更新类库以添加DataContract和DataMember属性.暴露这些物体最简单的方法是什么?

wcf datacontract

4
推荐指数
1
解决办法
7641
查看次数

为什么我使用KnownType属性错误?

我试图从谷歌api反序列化一个json响应,所以我想我会定义几个类来帮助它:

[DataContract]
public class DetectionResult:ResponseData
{
    [DataMember(Name="language")]
    public string Language
    { get; set; }

    [DataMember(Name="isReliable")]
    public bool IsReliable
    { get; set; }

    [DataMember(Name="confidence")]
    public double Confidence
    {get;set;}
}

[DataContract]
public abstract class ResponseData
{

    [DataMember(Name = "error")]
    public TranslationError Error
    { get; set; }

}

[DataContract]
public class TranslationError
{
    [DataMember(Name="code")]
    public int Code
    { get; set; }

    [DataMember(Name="message" )]
    public int Message
    { get; set; }
}


[DataContract]
[KnownType(typeof(DetectionResult))]
public class RequestResult
{
    [DataMember(Name="responseStatus")]
    public int ResponseStatus
    { get; …
Run Code Online (Sandbox Code Playgroud)

c# wcf serialization datacontract

4
推荐指数
1
解决办法
7068
查看次数

WCF数据合同/序列化

我创建了一个简单的WCF应用程序,它公开了一个操作 此操作将复合数据类型作为参数.

我没有使用[DataContract]属性修饰此复合数据类型.但这是有效的,我可以在WSDL中看到Schema.

现在我的理解是这个新的自定义类型应该用[Serializable]或[dataContract]属性进行修饰以参与Web服务操作.

我在这里缺少什么?

wcf serialization datacontract xmlserializer

4
推荐指数
2
解决办法
2794
查看次数

实体框架POCO与WCF软件设计问题

我将在我的应用程序中使用Entity Framework和WCF.正如我所看到的,建议的做法是使用POCO和Entity Framework,并使用POCO类作为DataContracts.这实际上是POCO和属性的用途,如果我没有错的话.

但是我被要求对Entity Framework POCO和WCF DataContracts使用单独的分类.并在POCO和DataContracts之间使用映射器.喜欢,FooFooContract具有相同的属性.

我是第一种方法,但我想知道第二种方法(单独的类方法)是否为应用程序提供了灵活性,或者只是浪费了精力.

如果您能分享您对POCO和DataContracts使用单独课程的想法和经验,对此有利,我将不胜感激.

wcf entity-framework datacontract poco

4
推荐指数
1
解决办法
1956
查看次数

代理类没有等于方法WCF

我的webservice中有一个类作为DataContract,它继承自IEquatable.但我的siverlight webservice生成的代理类没有equals.任何人都可以告诉我为什么会这样,有没有办法实现这一目标?

c# datacontract wcf-client

4
推荐指数
1
解决办法
652
查看次数

使用DataContractSerializer序列化子类实例的实际方法是什么?

使用DataContractSerializer序列化子类实例的实际方法是什么?

例如,以下是数据类型:

 [DataContract]
    public class Car
    {
        public Car()
        {
            Wheels = new Collection<Wheel>();
        }

        [DataMember]
        public Collection<Wheel> Wheels { get; set; }
    }

    [DataContract]    
    public abstract class Wheel
    {
        [DataMember]
        public string Name { get; set; }
    }

    [DataContract]
    public class MichelinWheel : Wheel
    {
        [DataMember]
        public string Wheel1Test { get; set; }
    }

    [DataContract]
    public class BridgeStoneWheel : Wheel
    {
        [DataMember]
        public string Wheel2Test { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

这是创建带有两个不同车轮的汽车的代码:

    Car car = new Car();

    MichelinWheel w1 = …
Run Code Online (Sandbox Code Playgroud)

wcf serialization datacontract datacontractserializer

4
推荐指数
1
解决办法
1218
查看次数

DataContract和自定义set/get从字符串设置DateTime

我需要从服务器解析JSON数据并制作一个对象的列表.

我正在使用DataContract以便在json字典字段和类属性之间建立关联,但是我遇到了一个问题:其中一个字段包含字符串中的日期(类似于"2011-01-01 15:00 UTC" ); 我想把它放在DateTime属性中.

如何将此字符串转换为日期时间并使用DataContract自动传递属性?那可能吗?

c# datacontract

4
推荐指数
1
解决办法
3570
查看次数

WCF数据合同 - 实施所需值的最佳/最简洁方法?

我有一个WCF数据契约与一堆原始类型的属性,如int和decimal,DateTime(当然,这是一个结构).

我的同事建议将它们全部为可空,然后通过检查null来验证服务端的必需值.我相信部分原因是因为它是一个可序列化的对象,所以你不能用数据契约上的构造函数强制执行所需的值 - 它避免了测试默认值的麻烦.

但是,我还希望在合同中隐含必需的属性,以便客户可以了解所需的属性.

所以不要做类似的事情,

[DataMember] 
public Nullable<int> AgencyID { get; set; }
Run Code Online (Sandbox Code Playgroud)

这将允许我在服务端干净地测试null,我这样做:

[DataMember(IsRequired = true, EmitDefaultValue = true)] 
public int AgencyID { get; set; }
Run Code Online (Sandbox Code Playgroud)

我的理解是,如果没有为属性分配值或者默认值为0,这将抛出异常 - 这是所需的行为.这是在客户端执行所需属性的最佳实践吗?让一切都可以为空并在服务端检查它有什么好处吗?

wcf datacontract non-nullable isrequired

4
推荐指数
1
解决办法
7747
查看次数

可移植类库与.NET 4.6没有DataContract或Serialization函数

我刚刚在一个全新的Windows 10副本上拿出了一个全新的Visual Studio 2015副本.我试图创建一个简单的可移植类库(PCL)并试图添加一个简单的数据契约:

namespace ClassLibrary1
{
    using System.Runtime.Serialization;

    [DataContract]
    public class Class1
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器告诉我:

找不到类型或命名空间名称'DataContract'(您是否缺少using指令或程序集引用.当选择.NET 4.6作为目标时,似乎缺少名称空间System.Runtime.Serialization.

当为目标选择.NET Framework 4.6时,似乎没有可用的序列化.如果我回退到.NET 4.5.1,那么相同的代码编译(并在一个更复杂的项目中运行).这里发生了什么?.NET 4.6还没有为Visual Studio中的Prime Time做好准备吗?其他人遇到这个?

c# datacontract visual-studio-2015 .net-4.6

4
推荐指数
1
解决办法
4269
查看次数

我可以在WCF ServiceContract中公开数据成员吗?

在WCF服务中,是否可以在ServiceContract定义中包含数据成员?做这样的事情:

namespace My.Service.Contracts
{
    [ServiceContract]
    public interface IMyService
    {
        [OperationContract]
        ResultObject[] Search(SearchParams searchParams);

        [DataMember]
        MyCustomClass MyDataMember { get; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以MyDataMember从ServiceContract内部公开吗?场景将如下所示:实现服务契约的以下类具有我想使用公共字段/属性公开的成员数据.看起来像这样的东西:我试图在实现服务合同的类中公开一个字段/属性.例如:

public class MyService : IMyService
{
    private MyCustomClass _datafield;

    ResultObject[] Search(SearchParams searchParams){
        //Do the search
    }

    MyCustomClass MyDataMember {
      get: { return _dataField; }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# wcf datacontract servicecontract

4
推荐指数
1
解决办法
1289
查看次数