/// <summary> /// Establishes connection between given reader and a smart card and returns object implementing IReader interface /// capable of interaction with a card, throws an exception if no card available. /// </summary> /// <param name="readerName">Reader name seen by smart card resource manager.</param> /// <returns></returns> private static ISmartCardReader Connect(string readerName) { var reader = new SmartCardReader(readerName); ReaderState readerState = ContextHandler.Instance.GetReaderState(reader.PcscReaderName, ReaderStates.Unaware); if (readerState.AtrLength > 0) { reader.Connect(ReaderSharingMode.Shared, Protocol.Any); return(reader); } throw new Exception("No Smart Card Available in contact slot."); }
private static ISmartCardReader Connect(string readerName) { var reader = new SmartCardReader(readerName); var readerState = ContextHandler.Instance.GetReaderState(reader.PcscReaderName, ReaderStates.Unaware); if (readerState.AtrLength > 0) { reader.Connect(ReaderSharingMode.Shared, Protocol.Any); } else { reader.ConnectDirect(); } return(reader); }