internal TwainCapabilities(Twain32 twain)
        {
            MethodInfo _сreateCapability = typeof(TwainCapabilities).GetMethod("CreateCapability", BindingFlags.Instance | BindingFlags.NonPublic);

            foreach (PropertyInfo _prop in typeof(TwainCapabilities).GetProperties())
            {
                object[] _attrs = _prop.GetCustomAttributes(typeof(CapabilityAttribute), false);
                if (_attrs.Length > 0)
                {
                    CapabilityAttribute _attr = _attrs[0] as CapabilityAttribute;
                    _prop.SetValue(this, _сreateCapability.MakeGenericMethod(_prop.PropertyType.GetGenericArguments()[0]).Invoke(this, new object[] { twain, _attr.Cap }), null);
                }
            }
        }
Example #2
0
 public ScannerManager()
 {
     _twain32 = new Twain32();
     _twain32.AppProductName = ConfigurationManager.PROGRAM_NAME;
     _twain32.ShowUI         = false;
 }
 private Capability <T> CreateCapability <T>(Twain32 twain, TwCap cap) where T : struct
 {
     return(Activator.CreateInstance(typeof(Capability <T>), new object[] { twain, cap }) as Capability <T>);
 }
 public Capability(Twain32 twain, TwCap cap)
 {
     this._Twain32 = twain;
     this._Cap     = cap;
 }