private FunctionInfo GetFunctionInfo(int version) {
if (version == _funcInfo.Version)
return _funcInfo;
FunctionInfo funcInfo = _funcInfo;
FunctionInfo lastFuncInfo = null;
while (funcInfo != null) {
if (funcInfo.Version == version) {
return funcInfo;
}
lastFuncInfo = funcInfo;
if (version > funcInfo.Version) {
funcInfo = funcInfo.NextVersion;
} else {
funcInfo = funcInfo.PreviousVersion;
}
}
// if version is Int32.MaxValue return the latest factory
if (version == Int32.MaxValue)
return lastFuncInfo;
return null;
}