Comments (3)
At the moment you can't inject structs into constructors since they're seen as value types (data) instead, since by default they're not passed by reference. You can only inject classes via constructors.
Registration indeed works with primitive types, but then resolving will not since the constructor is deemed to be unsuitable for injection.
Is there a specific use case for injecting structs into constructors instead? Or did you expect Poodinis to simply skip the constructor as being suitable for injection?
from poodinis.
The concrete usecase is that I'd like to avoid using poodinis to wire my components in unittests. It would be a lot less boilerplate, to just pass the dependencies as parameters to a constructor, because a lot of them will be mocked anyways, so wiring is not neccessary. So I'd be ok with that constructor simply being skipped as suitable for injection.
from poodinis.
Fixed in v8.0.3
from poodinis.
Related Issues (20)
- Deprecation warning shown: "<symbol> is not visible from module context" HOT 2
- problem with registering existingInstance after updating to 7.0.0 HOT 4
- @PostConstruct ? HOT 1
- Post construction method HOT 3
- Visibility deprecation warnings when having imports in class HOT 2
- Access violation in poodinis.container.getExistingRegistration HOT 2
- Can't define a static @property DependencyContainer HOT 2
- unittest doesnt compile HOT 4
- Value injection does not work with structs HOT 8
- feature request: context parameter HOT 4
- Should interfaces work as components? HOT 2
- Better error message for: register does not match any template declaration HOT 1
- Hunt-Framework broken with Poodinis 8.1.0-beta.3 HOT 3
- Private type detection failed HOT 3
- fix "multiple ! arguments are not allowed" on constructor argument injection HOT 1
- Documentation unclear whether DependencyContainer.resolve objects are shared or not HOT 3
- @Component annotated method in ApplicationContext cannot be used with Interfaces HOT 1
- Deprecation warning: `__traits(getAttributes)` may only be used for individual functions, not overload sets such as: `X` HOT 2
- Avoiding @Value Initialization for Existing Instances
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from poodinis.