static ExtendedSearchAspect() { var values = ConvertUtilities.EnumEnumerateValues <FilterFunctions>(); string filterFunctionEditorTypeName = "enum:"; foreach (var value in values) { filterFunctionEditorTypeName += string.Format("{0}={1},", value, (int)value); } filterFunctionEditorTypeName = filterFunctionEditorTypeName.TrimEnd(';'); string multiValueFilterFunctionEditorTypeName = "mv" + filterFunctionEditorTypeName; Descriptor = new XmlDocument(); Descriptor.LoadXml( @"<cf:project xmlns:cf='http://www.softfluent.com/codefluent/2005/1' defaultNamespace='ExtendedSearchAspect'> <cf:pattern name='Extended Search Aspect' namespaceUri='" + NamespaceUri + @"' preferredPrefix='" + PreferredPrefix + @"' step='Start'> <cf:message class='_doc'> SoftFluent Samples - Extended Search Aspect This aspect is used to customize Search methods. It modifies methods (BOM and SQL) to support dynamic filter functions (Equals, StartsWith, EndsWith, Contains, FreeText, ...) </cf:message> <cf:descriptor name='defaultEnabled' targets='Project, Entity' defaultValue='false' displayName='Default is Enabled' typeName='boolean' category='Extended Search Aspect' /> <cf:descriptor name='enabled' targets='Method, Parameter' defaultValue='false' displayName='Is Enabled' typeName='boolean' category='Extended Search Aspect' /> <cf:descriptor name='defaultParameterNameFormat' targets='Project, Entity, Method' defaultValue='" + DefaultParameterNameFormat + @"' displayName='Default Parameter Name Format' typeName='string' category='Extended Search Aspect' /> <cf:descriptor name='parameterNameFormat' targets='Parameter' defaultValue='" + DefaultParameterNameFormat + @"' displayName='Parameter Name Format' typeName='string' category='Extended Search Aspect' /> <cf:descriptor name='defaultFilterFunctions' targets='Project, Entity, Method' defaultValue='" + DefaultFilterFunctions.ToString() + @"' displayName='Default Filter Functions' editorTypeName='" + multiValueFilterFunctionEditorTypeName + @"' category='Extended Search Aspect' /> <cf:descriptor name='filterFunctions' targets='Parameter' defaultValue='" + DefaultFilterFunctions.ToString() + @"' displayName='Filter Functions' editorTypeName='" + multiValueFilterFunctionEditorTypeName + @"' category='Extended Search Aspect' /> <cf:descriptor name='isFilterFunctionsEnumeration' targets='Enumeration' defaultValue='false' displayName='Is Filter Functions Enumeration' typeName='boolean' category='Extended Search Aspect' /> <cf:descriptor name='filterFunction' targets='EnumerationValue' defaultValue='None' displayName='Filter Function' editorTypeName='" + filterFunctionEditorTypeName + @"' category='Extended Search Aspect' /> <cf:descriptor name='createMultiValuedEnumeration' targets='Project' defaultValue='true' displayName='Create multi-valued enumeration' typeName='boolean' category='Extended Search Aspect' /> </cf:pattern> </cf:project>"); }