internal SdlGenerator(ServiceType[] serviceTypes, SdlType sdlType, TextWriter output)
{
Util.Log("SdlGenerator.SdlGenerator 5 ");
_textWriter = output;
_queue = new Queue();
_name = null;
_namespaces = new ArrayList();
_dynamicAssembly = null;
_serviceEndpoint = null;
_sdlType = sdlType;
for (int i=0; i<serviceTypes.Length; i++)
{
if (serviceTypes[i] != null)
{
if (serviceTypes[i].ObjectType.BaseType != null)
_queue.Enqueue(serviceTypes[i].ObjectType);
}
// Associate serviceEndpoint with type. A type can have multiple serviceEndpoints
if (serviceTypes[i].Url != null)
{
if (_typeToServiceEndpoint == null)
_typeToServiceEndpoint = new Hashtable(10);
if (_typeToServiceEndpoint.ContainsKey(serviceTypes[i].ObjectType.Name))
{
ArrayList serviceEndpoints = (ArrayList)_typeToServiceEndpoint[serviceTypes[i].ObjectType.Name];
serviceEndpoints.Add(serviceTypes[i].Url);
}
else
{
ArrayList serviceEndpoints = new ArrayList(10);
serviceEndpoints.Add(serviceTypes[i].Url);
_typeToServiceEndpoint[serviceTypes[i].ObjectType.Name] = serviceEndpoints;
}
}
}
}