:例外ながらwtih DataContractSerializer .NETのコアで
System.Runtime.Serialization.SerializationException:エラー
using System; using System.Runtime.Serialization; using System.Text; using System.Xml; namespace BugTest { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); var xml = @"<PingDataConfirmation xmlns=""http://mycompany.com/MyProduct/Operations""> <SourceGuid>88c02aba-f78c-4749-8665-0caddee08b8a</SourceGuid> <Guid>88c02aba-f78c-4749-8665-0caddee08b8a</Guid> <CreationTime>0001-01-01T00:00:00</CreationTime> </PingDataConfirmation>"; const int buffSize = 1000000; int bytes = 0; int chars = 0; byte[] result = new byte[buffSize]; bool compl; Encoding.UTF8.GetEncoder().Convert(xml.ToCharArray(), 0, xml.Length, result, 0, buffSize, true, out chars, out bytes, out compl); var xmlReader = XmlDictionaryReader.CreateTextReader(result, 0, bytes, new XmlDictionaryReaderQuotas()); var sr = new DataContractSerializer(typeof(PingDataConfirmation)); var deserialized = sr.ReadObject(xmlReader); } } [DataContract(Namespace = "http://mycompany.com/MyProduct/Operations")] public class PingDataConfirmation { [DataMember(IsRequired = true)] public string SourceGuid { get; set; } [DataMember(IsRequired = true)] public string Guid { get; set; } [DataMember(IsRequired = true)] public DateTime CreationTime { get; set; } } }
それが例外をスロー1行目 ポジション86。 'Element' 'SourceGuid' from namespace 'http://mycompany.com/MyProduct/Operations'は期待されていません。期待する 要素 'CreationTime'
したがって、DataContractSerializedのいずれかのプロパティが欠落しているようです。
それで、DataContractSerializerの.netコア実装ではバグかもしれませんか?それが起こるのを見るためにインテリアをデバッグする可能性はありますか?
CSPROJ:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.ServiceModel.Primitives" Version="*" />
<PackageReference Include="System.ServiceModel.Http" Version="*" />
</ItemGroup>
</Project>
.NETのコア:
1.0.4