ObjectExporter
ObjectExporter copied to clipboard
Private objects are included even if "Exclude Private" is selected
Example of what is produced: AcquiredImageData = new System.Collections.Generic.List<MedAvail.Data.Messages.Dispense.AcquiredImageData> { }, BarCodeSummary = new System.Collections.Generic.List<MedAvail.Data.Messages.Dispense.BarCodeData> { },
... _AcquiredImageData = new System.Collections.Generic.List<MedAvail.Data.Messages.Dispense.AcquiredImageData> { }, _BarCodeSummary = new System.Collections.Generic.List<MedAvail.Data.Messages.Dispense.BarCodeData> { } ...
Hey @LRomano72, thanks for reporting the issue. Are _AcquiredImageData and BarCodeSummary listed as anything other than private? do they have any other special modifiers?
Hi Omar, They are in a DTO class that can be used for serialized messages using both .NET and ProtoBuf, example below: But in the end they are just public items backed by private fields.
[Serializable]
[ProtoContract(Name = @"PickResponse")]
[DataContract(Name = @"PickResponse")]
public class PickResponse
{
private List<AcquiredImageData> _AcquiredImageData = new List<AcquiredImageData>();
private List<BarCodeData> _BarCodeSummary = new List<BarCodeData>();
[ProtoMember(1, IsRequired = true, Name = @"PickResultCode", DataFormat = DataFormat.TwosComplement)]
[DataMember(Name = @"PickResultCode", Order = 1, IsRequired = true)]
public PackageMovementResultCode PickResultCode { get; set; }
[ProtoMember(2, IsRequired = false, Name = @"Error", DataFormat = DataFormat.Default)]
[DefaultValue(null)]
[DataMember(Name = @"Error", Order = 2, IsRequired = false)]
public PackageMovementError Error { get; set; }
[ProtoMember(3, IsRequired = true, Name = @"PackageDimensions", DataFormat = DataFormat.Default)]
[DataMember(Name = @"PackageDimensions", Order = 3, IsRequired = true)]
public PackageDimensions PackageDimensions { get; set; }
[ProtoMember(4, Name = @"AcquiredImageData", DataFormat = DataFormat.Default)]
[DataMember(Name = @"AcquiredImageData", Order = 4, IsRequired = false)]
public List<AcquiredImageData> AcquiredImageData
{
get { return _AcquiredImageData; }
set { _AcquiredImageData = value; }
}
[ProtoMember(5, IsRequired = true, Name = @"IsPackageImageSpecified", DataFormat = DataFormat.Default)]
[DataMember(Name = @"IsPackageImageSpecified", Order = 5, IsRequired = true)]
public bool IsPackageImageSpecified { get; set; }
[ProtoMember(6, IsRequired = true, Name = @"PickedFromLocation", DataFormat = DataFormat.Default)]
[DataMember(Name = @"PickedFromLocation", Order = 6, IsRequired = true)]
public SlotLocation PickedFromLocation { get; set; }
[ProtoMember(7, IsRequired = true, Name = @"Shape", DataFormat = DataFormat.TwosComplement)]
[DataMember(Name = @"Shape", Order = 7, IsRequired = true)]
public PackageShape Shape { get; set; }
[ProtoMember(8, Name = @"BarCodeSummary", DataFormat = DataFormat.Default)]
[DataMember(Name = @"BarCodeSummary", Order = 8, IsRequired = false)]
public List<BarCodeData> BarCodeSummary
{
get { return _BarCodeSummary; }
set { _BarCodeSummary = value; }
}
[ProtoMember(9, IsRequired = true, Name = @"Session", DataFormat = DataFormat.Default)]
[DataMember(Name = @"Session", Order = 9, IsRequired = true)]
public Session Session { get; set; }
public BarCodeData FirstBarcodeData()
{
var barCodeData = default(BarCodeData);
if (AcquiredImageData != null)
{
foreach (var acquiredImage in AcquiredImageData)
{
if (acquiredImage.BarCodeDecodeResults.FirstBarCodeData() != null)
{
barCodeData = acquiredImage.BarCodeDecodeResults.FirstBarCodeData();
break;
}
}
}
return barCodeData;
}
}
Same Problem, private fields printed out even with the ExcludeCheckBox checked. Will this be fixed one day?