public SourceBindingCodeGenerator(
     TypeResolver typeResolver,
     ReadOnlyDependencyPropertyToNotificationEventResolver readOnlyDependencyPropertyToNotificationEventResolver)
 {
     this.typeResolver = typeResolver;
     this.readOnlyDependencyPropertyToNotificationEventResolver = readOnlyDependencyPropertyToNotificationEventResolver;
 }
        public BindingPathCodeGenerator(
            TypeResolver typeResolver,
            BindingXamlPlatformInfo bindingXamlPlatformInfo,
            ReadOnlyDependencyPropertyToNotificationEventResolver readOnlyDependencyPropertyToNotificationEventResolver,
            BindingModeResolver bindingModeResolver,
            TypeAssignmentCompatibilityAssessor typeAssignmentCompatibilityAssessor)
        {
            this.typeResolver = typeResolver;
            var sourceBindingCodeGenerator = new SourceBindingCodeGenerator(this.typeResolver, readOnlyDependencyPropertyToNotificationEventResolver);

            this.targetBindingCodeGenerator     = new TargetBindingCodeGenerator(this.typeResolver, bindingModeResolver, typeAssignmentCompatibilityAssessor, bindingXamlPlatformInfo, sourceBindingCodeGenerator);
            this.targetBindingPartCodeGenerator = new TargetBindingPartCodeGenerator(sourceBindingCodeGenerator, bindingModeResolver, this.typeResolver, bindingXamlPlatformInfo);
        }