Closed michaelaird closed 12 years ago
Also, it might be a good idea to republish the nuget packages with a version range to prevent people from updating ninject unknowingly.
haven't really planned an update to NInject 3.0 yet... If you need it urgently, I'd welcome a pull request :)
On Tue, Apr 24, 2012 at 9:56 PM, Michael Aird < reply@reply.github.com
wrote:
It looks like Ninject 3.0 has removed a method that the Agatha Ninject container relies on. When i try to run it, i get the following error:
[MissingMethodException: Method not found: 'Ninject.Syntax.IBindingToSyntax`1
Ninject.Syntax.IBindingRoot.Bind(System.Type)'.] Agatha.Ninject.Container.Register(Type componentType, Type implementationType, Lifestyle lifeStyle) in c:\src\agatha\Agatha.Ninject\Container.cs:23 Agatha.ServiceLayer.ServiceLayerConfiguration.RegisterRequestHandlerInterceptor() in c:\src\agatha\Agatha.ServiceLayer\ServiceLayerConfiguration.cs:190
Agatha.ServiceLayer.ServiceLayerAndClientConfiguration.RegisterRequestHandlerInterceptor() in c:\src\agatha\Agatha.ServiceLayer\ServiceLayerAndClientConfiguration.cs:108
Is there a work-around for this? or a planned update to support Ninject 3.0?
Thanks, Michael.
Reply to this email directly or view it on GitHub: https://github.com/davybrion/Agatha/issues/23
Gotcha. I'll see if i can pull something together this week and submit a pull request.
Upgraded nuget package to Ninject 3.0.0.15 All configuration tests succeed. Which versions of Agatha/Ninject are you using?
I'm using v1.3 from Nuget.
When I look at it in JustDecompile, the method looks like this:
public ServiceLayerConfiguration RegisterRequestHandlerInterceptor
but in the current code it looks like this:
public ServiceLayerConfiguration RegisterRequestHandlerInterceptor
Did this get updated but the nuget package didn't?
The registration part was moved in the version below, but the same signature is used to register the components. I don't think it makes a difference in this case. https://github.com/davybrion/Agatha/commit/ba8566ab73593ac9592426445b76c994e6c414fc#diff-0
I think i found the culprit.
Ninject 3 changed the method signature in this commit: https://github.com/ninject/ninject/commit/83c8f532103a09d0703718b0d5aa80dd1f1b10e5#diff-28
///
30 50 /// Declares a binding from the service to itself. 31 51 ///
32
from taking a single object to taking an array. recompiling against ninject 3 makes the compiler re-resolve the method call and everything works.
I could do a local build of Agatha to deal with this but I'd really prefer to use the "official" nuget packages.
Any chance you could publish an updated nuget package that has been compiled against ninject 3?
Thanks, Michael.
1.3.1 uses Ninject 3
It looks like Ninject 3.0 has removed a method that the Agatha Ninject container relies on. When i try to run it, i get the following error:
[MissingMethodException: Method not found: 'Ninject.Syntax.IBindingToSyntax`1 Ninject.Syntax.IBindingRoot.Bind(System.Type)'.]
Agatha.Ninject.Container.Register(Type componentType, Type implementationType, Lifestyle lifeStyle) in c:\src\agatha\Agatha.Ninject\Container.cs:23
Agatha.ServiceLayer.ServiceLayerConfiguration.RegisterRequestHandlerInterceptor() in c:\src\agatha\Agatha.ServiceLayer\ServiceLayerConfiguration.cs:190
Agatha.ServiceLayer.ServiceLayerAndClientConfiguration.RegisterRequestHandlerInterceptor() in c:\src\agatha\Agatha.ServiceLayer\ServiceLayerAndClientConfiguration.cs:108
Is there a work-around for this? or a planned update to support Ninject 3.0?
Thanks, Michael.