mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-08 08:51:50 +00:00
Allow class name only function resolution in mod_mono because some people were too lazy to fully qualify
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9456 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
b95e23441d
commit
fb9e85df57
@ -42,6 +42,8 @@ namespace FreeSWITCH
|
|||||||
{
|
{
|
||||||
// Stores a list of the loaded function types so we can instantiate them as needed
|
// Stores a list of the loaded function types so we can instantiate them as needed
|
||||||
static readonly Dictionary<string, Type> functions = new Dictionary<string, Type>(StringComparer.InvariantCultureIgnoreCase);
|
static readonly Dictionary<string, Type> functions = new Dictionary<string, Type>(StringComparer.InvariantCultureIgnoreCase);
|
||||||
|
// Only class name. Last in wins.
|
||||||
|
static readonly Dictionary<string, Type> shortFunctions = new Dictionary<string, Type>(StringComparer.InvariantCultureIgnoreCase);
|
||||||
|
|
||||||
#region Load/Unload
|
#region Load/Unload
|
||||||
|
|
||||||
@ -86,6 +88,7 @@ namespace FreeSWITCH
|
|||||||
if (shouldLoad) {
|
if (shouldLoad) {
|
||||||
Log.WriteLine(LogLevel.Notice, "Function {0} loaded.", t.FullName);
|
Log.WriteLine(LogLevel.Notice, "Function {0} loaded.", t.FullName);
|
||||||
functions.Add(t.FullName, t);
|
functions.Add(t.FullName, t);
|
||||||
|
shortFunctions[t.Name] = t;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Log.WriteLine(LogLevel.Notice, "Function {0} requested not to be loaded.", t.FullName);
|
Log.WriteLine(LogLevel.Notice, "Function {0} requested not to be loaded.", t.FullName);
|
||||||
@ -137,8 +140,10 @@ namespace FreeSWITCH
|
|||||||
{
|
{
|
||||||
Type t;
|
Type t;
|
||||||
if (!functions.TryGetValue(fullName, out t) || !t.IsSubclassOf(typeof(TFunction))) {
|
if (!functions.TryGetValue(fullName, out t) || !t.IsSubclassOf(typeof(TFunction))) {
|
||||||
Log.WriteLine(LogLevel.Error, "Could not find function {0}.", fullName);
|
if (!shortFunctions.TryGetValue(fullName, out t) || !t.IsSubclassOf(typeof(TFunction))) {
|
||||||
return null;
|
Log.WriteLine(LogLevel.Error, "Could not find function {0}.", fullName);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user