public override void Marshal(DataOutputStream dos) { base.Marshal(dos); if (dos != null) { try { dos.WriteUnsignedByte((byte)this._controlType); dos.WriteUnsignedByte((byte)this._communicationsChannelType); this._sourceEntityID.Marshal(dos); dos.WriteUnsignedByte((byte)this._sourceCommunicationsDeviceID); dos.WriteUnsignedByte((byte)this._sourceLineID); dos.WriteUnsignedByte((byte)this._transmitPriority); dos.WriteUnsignedByte((byte)this._transmitLineState); dos.WriteUnsignedByte((byte)this._command); this._masterEntityID.Marshal(dos); dos.WriteUnsignedShort((ushort)this._masterCommunicationsDeviceID); dos.WriteUnsignedInt((uint)this._intercomParameters.Count); for (int idx = 0; idx < this._intercomParameters.Count; idx++) { IntercomCommunicationsParameters aIntercomCommunicationsParameters = (IntercomCommunicationsParameters)this._intercomParameters[idx]; aIntercomCommunicationsParameters.Marshal(dos); } } catch (Exception e) { if (PduBase.TraceExceptions) { Trace.WriteLine(e); Trace.Flush(); } this.RaiseExceptionOccured(e); if (PduBase.ThrowExceptions) { throw e; } } } }