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); }
private IDhcpOption CreateOption(DhcpOptionTypeDescriptor descriptor, object optionValue) { return((IDhcpOption)descriptor.Constructor.Invoke(new[] { optionValue })); }