private void AddPropertyChangedNotifier(ContractCodeDomInfo contractCodeDomInfo, bool isValueType) { if ((this.EnableDataBinding && this.SupportsDeclareEvents) && ((contractCodeDomInfo != null) && (contractCodeDomInfo.TypeDeclaration != null))) { CodeTypeDeclaration typeDeclaration = contractCodeDomInfo.TypeDeclaration; typeDeclaration.BaseTypes.Add(this.CodeTypeIPropertyChange); CodeMemberEvent propertyChangedEvent = this.PropertyChangedEvent; typeDeclaration.Members.Add(propertyChangedEvent); CodeMemberMethod raisePropertyChangedEventMethod = this.RaisePropertyChangedEventMethod; if (!isValueType) { raisePropertyChangedEventMethod.Attributes |= MemberAttributes.Family; } typeDeclaration.Members.Add(raisePropertyChangedEventMethod); contractCodeDomInfo.GetMemberNames().Add(propertyChangedEvent.Name, null); contractCodeDomInfo.GetMemberNames().Add(raisePropertyChangedEventMethod.Name, null); } }
private void AddExtensionData(ContractCodeDomInfo contractCodeDomInfo) { if ((contractCodeDomInfo != null) && (contractCodeDomInfo.TypeDeclaration != null)) { CodeTypeDeclaration typeDeclaration = contractCodeDomInfo.TypeDeclaration; typeDeclaration.BaseTypes.Add(DataContract.GetClrTypeFullName(Globals.TypeOfIExtensibleDataObject)); CodeMemberField extensionDataObjectField = this.ExtensionDataObjectField; if (this.GenerateSerializableTypes) { CodeAttributeDeclaration declaration2 = new CodeAttributeDeclaration(DataContract.GetClrTypeFullName(Globals.TypeOfNonSerializedAttribute)); extensionDataObjectField.CustomAttributes.Add(declaration2); } typeDeclaration.Members.Add(extensionDataObjectField); contractCodeDomInfo.GetMemberNames().Add(extensionDataObjectField.Name, null); CodeMemberProperty extensionDataObjectProperty = this.ExtensionDataObjectProperty; typeDeclaration.Members.Add(extensionDataObjectProperty); contractCodeDomInfo.GetMemberNames().Add(extensionDataObjectProperty.Name, null); } }
private string GetMemberName(string memberName, ContractCodeDomInfo contractCodeDomInfo) { memberName = GetClrIdentifier(memberName, "GeneratedMember"); if (memberName == contractCodeDomInfo.TypeDeclaration.Name) { memberName = AppendToValidClrIdentifier(memberName, "Member"); } if (contractCodeDomInfo.GetMemberNames().ContainsKey(memberName)) { string key = null; int num = 1; while (true) { key = AppendToValidClrIdentifier(memberName, num.ToString(NumberFormatInfo.InvariantInfo)); if (!contractCodeDomInfo.GetMemberNames().ContainsKey(key)) { memberName = key; break; } num++; } } contractCodeDomInfo.GetMemberNames().Add(memberName, null); return memberName; }
private void AddBaseMemberNames(ContractCodeDomInfo baseContractCodeDomInfo, ContractCodeDomInfo contractCodeDomInfo) { if (!baseContractCodeDomInfo.ReferencedTypeExists) { Dictionary<string, object> memberNames = baseContractCodeDomInfo.GetMemberNames(); Dictionary<string, object> dictionary2 = contractCodeDomInfo.GetMemberNames(); foreach (KeyValuePair<string, object> pair in memberNames) { dictionary2.Add(pair.Key, pair.Value); } } }
string GetMemberName(string memberName, ContractCodeDomInfo contractCodeDomInfo) { memberName = GetClrIdentifier(memberName, Globals.DefaultGeneratedMember); if (memberName == contractCodeDomInfo.TypeDeclaration.Name) memberName = AppendToValidClrIdentifier(memberName, Globals.DefaultMemberSuffix); if (contractCodeDomInfo.GetMemberNames().ContainsKey(memberName)) { string uniqueMemberName = null; for (int i = 1;; i++) { uniqueMemberName = AppendToValidClrIdentifier(memberName, i.ToString(NumberFormatInfo.InvariantInfo)); if (!contractCodeDomInfo.GetMemberNames().ContainsKey(uniqueMemberName)) { memberName = uniqueMemberName; break; } } } contractCodeDomInfo.GetMemberNames().Add(memberName, null); return memberName; }
void AddPropertyChangedNotifier(ContractCodeDomInfo contractCodeDomInfo, bool isValueType) { if (EnableDataBinding && SupportsDeclareEvents && contractCodeDomInfo != null && contractCodeDomInfo.TypeDeclaration != null) { CodeTypeDeclaration codeTypeDeclaration = contractCodeDomInfo.TypeDeclaration; codeTypeDeclaration.BaseTypes.Add(CodeTypeIPropertyChange); CodeMemberEvent memberEvent = PropertyChangedEvent; codeTypeDeclaration.Members.Add(memberEvent); CodeMemberMethod raisePropertyChangedEventMethod = RaisePropertyChangedEventMethod; if (!isValueType) raisePropertyChangedEventMethod.Attributes |= MemberAttributes.Family; codeTypeDeclaration.Members.Add(raisePropertyChangedEventMethod); contractCodeDomInfo.GetMemberNames().Add(memberEvent.Name, null); contractCodeDomInfo.GetMemberNames().Add(raisePropertyChangedEventMethod.Name, null); } }