internal bool IsInteropNameSpace() { if (arrayElemObjectInfo != null) { return(arrayElemObjectInfo.IsInteropNameSpace()); } if (IsAttributeNameSpace() || IsCallElement()) { return(true); } else { return(false); } }
private long GetAssemblyId(WriteObjectInfo objectInfo) { //use objectInfo to get assembly string with new criteria InternalST.Soap( this, "GetAssemblyId Entry ",objectInfo.objectType," isSi ",objectInfo.isSi); long assemId = 0; bool isNew = false; String assemblyString = objectInfo.GetAssemblyString(); String serializedAssemblyString = assemblyString; if (assemblyString.Length == 0) { // Fake type could returns an empty string assemId = 0; } else if (assemblyString.Equals(Converter.urtAssemblyString)) { // Urt type is an assemId of 0. No assemblyString needs // to be sent but for soap, dotted names need to be placed in header InternalST.Soap( this, "GetAssemblyId urt Assembly String "); assemId = 0; isNew = false; serWriter.WriteAssembly(objectInfo.GetTypeFullName(), objectInfo.objectType, null, (int)assemId, isNew, objectInfo.IsAttributeNameSpace()); } else { // Assembly needs to be sent // Need to prefix assembly string to separate the string names from the // assemblyName string names. That is a string can have the same value // as an assemblyNameString, but it is serialized differently if (assemblyToIdTable.ContainsKey(assemblyString)) { assemId = (long)assemblyToIdTable[assemblyString]; isNew = false; } else { assemId = m_idGenerator.GetId("___AssemblyString___"+assemblyString, out isNew); assemblyToIdTable[assemblyString] = assemId; } if (assemblyString != null && !objectInfo.IsInteropNameSpace()) { if (formatterEnums.FEassemblyFormat == FormatterAssemblyStyle.Simple) { // Use only the simple assembly name (not version or strong name) int index = assemblyString.IndexOf(','); if (index > 0) serializedAssemblyString = assemblyString.Substring(0, index); } } serWriter.WriteAssembly(objectInfo.GetTypeFullName(), objectInfo.objectType, serializedAssemblyString, (int)assemId, isNew, objectInfo.IsInteropNameSpace()); } InternalST.Soap( this, "GetAssemblyId Exit id ",assemId," isNew ",isNew," assemblyString ",serializedAssemblyString); return assemId; }
private long GetAssemblyId(WriteObjectInfo objectInfo) { long id = 0L; bool isNew = false; string assemblyString = objectInfo.GetAssemblyString(); string assemName = assemblyString; if (assemblyString.Length == 0) { return 0L; } if (assemblyString.Equals(Converter.urtAssemblyString)) { id = 0L; isNew = false; this.serWriter.WriteAssembly(objectInfo.GetTypeFullName(), objectInfo.objectType, null, (int) id, isNew, objectInfo.IsAttributeNameSpace()); return id; } if (this.assemblyToIdTable.ContainsKey(assemblyString)) { id = (long) this.assemblyToIdTable[assemblyString]; isNew = false; } else { id = this.m_idGenerator.GetId("___AssemblyString___" + assemblyString, out isNew); this.assemblyToIdTable[assemblyString] = id; } if (((assemblyString != null) && !objectInfo.IsInteropNameSpace()) && (this.formatterEnums.FEassemblyFormat == FormatterAssemblyStyle.Simple)) { int index = assemblyString.IndexOf(','); if (index > 0) { assemName = assemblyString.Substring(0, index); } } this.serWriter.WriteAssembly(objectInfo.GetTypeFullName(), objectInfo.objectType, assemName, (int) id, isNew, objectInfo.IsInteropNameSpace()); return id; }