private Dictionary <DhcpOptionTypeCode, DhcpOptionTypeDescriptor> GetEnumToDescriptorMapping(IEnumerable <Type> optionTypes)
        {
            var mapping = new Dictionary <DhcpOptionTypeCode, DhcpOptionTypeDescriptor>();

            foreach (var optionType in optionTypes)
            {
                var dhcpOptionAttribute = optionType.GetCustomAttribute <DhcpOptionAttribute>();

                var optionTypeCtor  = GetOptionConstructor(optionType);
                var optionValueType = optionTypeCtor.GetParameters()[0].ParameterType;

                var descriptor = new DhcpOptionTypeDescriptor(optionType, optionValueType, optionTypeCtor);

                mapping.Add(dhcpOptionAttribute.OptionTypeCode, descriptor);
            }

            return(mapping);
        }
Пример #2
0
 private IDhcpOption CreateOption(DhcpOptionTypeDescriptor descriptor, object optionValue)
 {
     return((IDhcpOption)descriptor.Constructor.Invoke(new[] { optionValue }));
 }