简体   繁体   中英

What is the constructor resolution order?

当存在多个构造函数时,Castle Windsor如何确定要解析的构造函数?

All available constructors are modeled as candidates and basically a contest is run among them.

Each parameter in a constructor represents a dependency that can be either satisfied or not. For each constructor candidate, all dependencies are analyzed.

If a dependency can be satisfied, that's two points for the candidate. If it can't be satisfied, two points are subtracted from the candidate.

The constructor candidate with the most points wins and is chosen to instantiate the component.

The code for this algorithm is here .

Castle Windsor will use the constructor with the most parameters whose dependencies it can resolve.

When there are two constructors with the same number of parameters that Windsor can resolve, the behavior used to be seemingly arbitrary but may have been fixed.

See this post by Krzysztof Kozmic

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM