/// <summary> /// Gets the service object of the specified type. /// </summary> /// <param name="serviceType">An object that specifies the type of service object to get.</param> /// <returns> /// A service object of type serviceType.-or- null if there is no service object of type serviceType. /// </returns> public virtual object GetService(Type serviceType) { if (serviceType == null) { throw new ArgumentNullException("serviceType"); } if (serviceType.IsAssignableFrom(GetType())) { return(this); } IServiceProvider sp = BaseStream as IServiceProvider; if (sp != null) { return(sp.GetService(serviceType)); } else if (serviceType.IsAssignableFrom(BaseStream.GetType())) { return(BaseStream); } else { return(null); } }
/// <inheritdoc cref="SerialPort.Open"/> public new void Open() { base.Open(); if (IsWindows) { return; } FieldInfo fieldInfo = BaseStream.GetType().GetField("fd", BindingFlags.Instance | BindingFlags.NonPublic); if (fieldInfo != null) { _fdStreamField = (int)fieldInfo.GetValue(BaseStream); _disposedFieldInfo = BaseStream.GetType() .GetField("disposed", BindingFlags.Instance | BindingFlags.NonPublic); fieldInfo = typeof(SerialPort).GetField("data_received", BindingFlags.Instance | BindingFlags.NonPublic); if (fieldInfo != null) { _dataReceived = fieldInfo.GetValue(this); } } new Thread(EventThreadFunction).Start(); }
public new void Open() { base.Open(); if (!IsWindows) { FieldInfo fieldInfo = BaseStream.GetType().GetField("fd", BindingFlags.Instance | BindingFlags.NonPublic); if (fieldInfo == null) { throw new NotSupportedException("Unable to initialize SerialPort - 'fd'-field is missing."); } _fd = (int)fieldInfo.GetValue(BaseStream); _disposedFieldInfo = BaseStream.GetType().GetField("disposed", BindingFlags.Instance | BindingFlags.NonPublic); if (_disposedFieldInfo == null) { throw new NotSupportedException("Unable to initialize SerialPort - 'disposed'-field is missing."); } fieldInfo = typeof(SerialPort).GetField("data_received", BindingFlags.Instance | BindingFlags.NonPublic); if (fieldInfo == null) { throw new NotSupportedException("Unable to initialize SerialPort - 'data_received'-field is missing."); } _dataReceived = fieldInfo.GetValue(this); _thread = new Thread(EventThreadFunction); _thread.Start(); } }
public new void Open() { base.Open(); if (IsWindows == false) { FieldInfo fieldInfo = BaseStream.GetType().GetField("fd", BindingFlags.Instance | BindingFlags.NonPublic); fd = (int)fieldInfo.GetValue(BaseStream); disposedFieldInfo = BaseStream.GetType().GetField("disposed", BindingFlags.Instance | BindingFlags.NonPublic); fieldInfo = typeof(SerialPort).GetField("data_received", BindingFlags.Instance | BindingFlags.NonPublic); data_received = fieldInfo.GetValue(this); new System.Threading.Thread(new System.Threading.ThreadStart(this.EventThreadFunction)).Start(); } }
public new void Open() { base.Open(); Console.WriteLine("Opened"); if (Environment.OSVersion.Platform == PlatformID.Unix) { FieldInfo fieldInfo = BaseStream.GetType().GetField("fd", BindingFlags.Instance | BindingFlags.NonPublic); fd = (int)fieldInfo.GetValue(BaseStream); disposedFieldInfo = BaseStream.GetType().GetField("disposed", BindingFlags.Instance | BindingFlags.NonPublic); fieldInfo = typeof(SerialPort).GetField("data_received", BindingFlags.Instance | BindingFlags.NonPublic); data_received = fieldInfo.GetValue(this); new System.Threading.Thread(new System.Threading.ThreadStart(this.EventThreadFunction)).Start(); } }
internal RecordReader Clone() { var memoryStream = BaseStream as ReadOnlyMemoryStream; if (memoryStream != null) { // Create new memory stream based on this memory stream return(context.CreateReader(new ReadOnlyMemoryStream(memoryStream.OrigialBuffer))); } else { var fileStream = BaseStream as FileStream; if (fileStream != null) { return(context.CreateReader(new ReadOnlyFileStream(fileStream.Name, FileMode.Open, FileAccess.Read))); } else { throw new InvalidOperationException("Stream was not recognised and cannot be cloned: " + BaseStream.GetType().FullName); } } }