ObjectExporter icon indicating copy to clipboard operation
ObjectExporter copied to clipboard

Private objects are included even if "Exclude Private" is selected

Open LRomano72 opened this issue 8 years ago • 3 comments

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

LRomano72 avatar Mar 07 '16 14:03 LRomano72

Hey @LRomano72, thanks for reporting the issue. Are _AcquiredImageData and BarCodeSummary listed as anything other than private? do they have any other special modifiers?

OmarElabd avatar Mar 07 '16 19:03 OmarElabd

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

LRomano72 avatar Mar 07 '16 19:03 LRomano72

Same Problem, private fields printed out even with the ExcludeCheckBox checked. Will this be fixed one day?

Kabennsky avatar Jun 20 '18 11:06 Kabennsky