Example #1
0
 public ProxyServiceDefinition(ServiceDefinition serviceDefinition, Type proxyType) : base(serviceDefinition.ServiceType, serviceDefinition.Lifetime)
 {
     ProxyType         = proxyType;
     ServiceDefinition = serviceDefinition;
     if (serviceDefinition.ServiceType.GetTypeInfo().IsClass)
     {
         ClassProxyServiceDefinition = new TypeServiceDefinition(serviceDefinition.ServiceType, ProxyType, serviceDefinition.Lifetime);
     }
 }
        private Func <ServiceResolver, object> ResolveTypeService(TypeServiceDefinition typeServiceDefinition)
        {
            var callSite = _constructorCallSiteResolver.Resolve(typeServiceDefinition.ImplementationType);

            if (callSite == null)
            {
                throw new InvalidOperationException(
                          $"Failed to create instance of type '{typeServiceDefinition.ServiceType}'. Possible reason is cannot match the best constructor of type '{typeServiceDefinition.ImplementationType}'.");
            }

            return(callSite);
        }