Spring.NET 1.3.0 RC1 for .NET 2.0 API Reference

AutowireUtils.GetTypeDifferenceWeight Method

Algorithm that judges the match between the declared parameter types of a candidate method and a specific list of arguments that this method is supposed to be invoked with.

[Visual Basic]
Public Shared Sub GetTypeDifferenceWeight( _
   ByVal paramTypes As Type, _
   ByVal args As Object _
)
[C#]
public static int GetTypeDifferenceWeight(
   Type[] paramTypes,
   object[] args
);

Parameters

paramTypes
The param types.
args
The args.

Return Value

Remarks

Determines a weight that represents the class hierarchy difference between types and arguments. The following a an example based on the Java class hierarchy for Integer. A direct match, i.e. type Integer -> arg of class Integer, does not increase the result - all direct matches means weight 0. A match between type Object and arg of class Integer would increase the weight by 2, due to the superclass 2 steps up in the hierarchy (i.e. Object) being the last one that still matches the required type Object. Type Number and class Integer would increase the weight by 1 accordingly, due to the superclass 1 step up the hierarchy (i.e. Number) still matching the required type Number. Therefore, with an arg of type Integer, a constructor (Integer) would be preferred to a constructor (Number) which would in turn be preferred to a constructor (Object). All argument weights get accumulated.

See Also

AutowireUtils Class | Spring.Objects.Factory.Support Namespace