in tools/simpleresgen/mono/ResXDataNode.cs [134:169]
internal ResXDataNode (string nameAtt, string mimeTypeAtt, string typeAtt,
string dataString, string commentString, Point position,
string basePath)
{
name = nameAtt;
comment = commentString;
pos = position;
MimeType = mimeTypeAtt;
Type = typeAtt;
if (!String.IsNullOrEmpty (mimeTypeAtt)) {
if (!String.IsNullOrEmpty(typeAtt)) {
handler = new TypeConverterFromResXHandler (dataString, mimeTypeAtt, typeAtt);
} else {
handler = new SerializedFromResXHandler (dataString, mimeTypeAtt);
}
} else if (!String.IsNullOrEmpty (typeAtt)) { //using hard coded types to avoid version mismatches
if (typeAtt.StartsWith ("System.Resources.ResXNullRef, System.Windows.Forms")) {
handler = new NullRefHandler (typeAtt);
} else if (typeAtt.StartsWith ("System.Byte[], mscorlib")) {
handler = new ByteArrayFromResXHandler (dataString);
} else if (typeAtt.StartsWith ("System.Resources.ResXFileRef, System.Windows.Forms")) {
ResXFileRef newFileRef = BuildFileRef (dataString, basePath);
handler = new FileRefHandler (newFileRef);
this.fileRef = newFileRef;
} else {
handler = new TypeConverterFromResXHandler (dataString, mimeTypeAtt, typeAtt);
}
} else {
handler = new InMemoryHandler (dataString);
}
if (handler == null)
throw new Exception ("handler is null");
}