private static void Use(GenericFamilyExpression expression, ServiceDescriptor descriptor)
 {
     if (descriptor.ImplementationFactory != null)
     {
         expression.Use(Guid.NewGuid().ToString(), context => { return descriptor.ImplementationFactory(context.GetInstance<IServiceProvider>()); });
     }
     else if (descriptor.ImplementationInstance != null)
     {
         expression.Use(descriptor.ImplementationInstance);
     }
     else if (descriptor.ImplementationType != null)
     {
         expression.Use(descriptor.ImplementationType);
     }
     else
     {
         throw new InvalidOperationException("IServiceDescriptor is invalid");
     }
 }