type="assembly.classname,assembly";
Type t=Type.GetType(type);
ITagParser parser=(ITagParser)t.Assembly.CreateInstance(t.FullName);
代码片断
public ITagParser GetParser(string xmlns,string tag)
{
if(items==null)
{
items=new Hashtable();
}
if(!items.Contains(xmlns+"--"+tag))
{
TagParserLib plib=(TagParserLib)config.Parserslib[xmlns];
if(!plib.Parsers.ContainsKey(tag))
{
return null;
}
TagParser pcfg=(TagParser)plib.Parsers[tag];
string type=pcfg.type;
if(type==null)
{
string assembly=plib.assembly;
string name=plib.defnamespace;
if(pcfg.classnamespace!=null)
name=pcfg.classnamespace;
if(pcfg.classname!=null)
name+="."+pcfg.classname;
else
name+="."+tag;
type=name+","+assembly;
}
Type t=Type.GetType(type);
ITagParser parser=(ITagParser)t.Assembly.CreateInstance(t.FullName);
items.Add(xmlns+"--"+tag,parser);
return parser;
}
return (ITagParser)items[xmlns+"--"+tag];
}