{
CodeCompileUnit ccu;
ConfigurationType config;
+ CodeIdentifiers identifiers = new CodeIdentifiers ();
Collection<MetadataConversionError> errors
= new Collection<MetadataConversionError> ();
Dictionary<string,string> nsmappings
string name = cd.Name + "Client";
if (name [0] == 'I')
name = name.Substring (1);
+ name = identifiers.AddUnique (name, null);
CodeTypeDeclaration type = GetTypeDeclaration (cns, name);
if (type != null)
return; // already imported
void GenerateChannelInterface (ContractDescription cd, CodeNamespace cns)
{
string name = cd.Name + "Channel";
+ name = identifiers.AddUnique (name, null);
CodeTypeDeclaration type = GetTypeDeclaration (cns, name);
if (type != null)
return;
type.TypeAttributes = TypeAttributes.Interface;
type.TypeAttributes |= TypeAttributes.Public;
cns.Types.Add (type);
- type.Name = cd.Name;
+ type.Name = identifiers.AddUnique (cd.Name, null);
CodeAttributeDeclaration ad =
new CodeAttributeDeclaration (
new CodeTypeReference (
AddMethodParam (cm, typeof (object), "state");
+ string argsname = identifiers.AddUnique (od.Name + "CompletedEventArgs", null);
var iaargs = new CodeTypeReference ("InvokeAsyncCompletedEventArgs"); // avoid messy System.Type instance for generic nested type :|
var iaref = new CodeVariableReferenceExpression ("args");
- var methodEventArgs = new CodeObjectCreateExpression (new CodeTypeReference (od.Name + "CompletedEventArgs"),
+ var methodEventArgs = new CodeObjectCreateExpression (new CodeTypeReference (argsname),
new CodePropertyReferenceExpression (iaref, "Results"),
new CodePropertyReferenceExpression (iaref, "Error"),
new CodePropertyReferenceExpression (iaref, "Cancelled"),
type.Members.Add (new CodeMemberField (new CodeTypeReference (typeof (SendOrPostCallback)), "on" + od.Name + "CompletedDelegate"));
// XxxCompletedEventArgs class
- var argsType = new CodeTypeDeclaration (od.Name + "CompletedEventArgs");
+ var argsType = new CodeTypeDeclaration (argsname);
argsType.BaseTypes.Add (new CodeTypeReference (typeof (AsyncCompletedEventArgs)));
cns.Types.Add (argsType);