コード例 #1
0
 private static bool Process(MemberInfo member, IFacetHolder holder) {
     Attribute attribute = member.GetCustomAttribute<RegularExpressionAttribute>();
     if (attribute == null) {
         attribute = member.GetCustomAttribute<RegExAttribute>();
     }
     return FacetUtils.AddFacet(Create(attribute, holder));
 }
コード例 #2
0
		/// <summary>
		/// Constructs the filter
		/// </summary>
		/// <param name="dataValue">
		/// DataValue used to link the local with the foreign DataObject
		/// </param>
		/// <param name="valueToCompare">
		/// Foreign DataObject
		/// </param>
		public ForeignKeyFilter(DataType dtype, System.Reflection.MemberInfo member, object valueToCompare)
		{
			if (dtype == null)
			{
				throw new ArgumentNullException(nameof(dtype));
			}

			if (member == null)
			{
				throw new ArgumentNullException(nameof(member));
			}

			DataType = dtype;
			Member = member;
			ValueToCompare = valueToCompare;

			foreach (DataMember pk in dtype.PrimaryKey)
			{
				ValueCompareFilter pkFilter = new ValueCompareFilter();
				pkFilter.Member = pk;
				pkFilter.ValueToCompare = (IComparable) pk.Member.GetValue(ValueToCompare);

				base.InnerFilters.Add(pkFilter);
			}
		}
コード例 #3
0
		/// <summary>
		/// Constructs the filter
		/// <para xml:lang="es">
		/// Construye el filtro
		/// </para>
		/// </summary>
		/// <param name="dataValue">
		/// DataValue used to link the local with the foreign DataObject
		/// <para xml:lang="es">
		/// Valor de datos utilizado para vincular el local con el DataObject externo
		/// </para>
		/// </param>
		/// <param name="valueToCompare">
		/// Foreign DataObject
		/// <para xml:lang="es">
		/// DataObject foraneo
		/// </para>
		/// </param>
		public ForeignKeyFilter(DataType dtype, System.Reflection.MemberInfo member, object valueToCompare)
		{
			if (dtype == null)
			{
				throw new ArgumentNullException(nameof(dtype));
			}

			if (member == null)
			{
				throw new ArgumentNullException(nameof(member));
			}

			DataType = dtype;
			Member = member;
			ValueToCompare = valueToCompare;

			DataType foreignKeyType = Data.Validation.MemberExpression.GetReturnType(member);

			foreach (DataMember pk in foreignKeyType.PrimaryKey)
			{
				ValueCompareFilter pkFilter = new ValueCompareFilter();
				pkFilter.Member = dtype[member.Name + "." + pk.Expression];
				pkFilter.ValueToCompare = (IComparable) pk.Expression.GetValue(ValueToCompare);

				Container.InnerFilters.Add(pkFilter);
			}
		}
 private static bool Process(MemberInfo member, IFacetHolder holder) {
     Attribute attribute = member.GetCustomAttribute<DescriptionAttribute>();
     if (attribute == null) {
         attribute = member.GetCustomAttribute<DescribedAsAttribute>();
     }
     return FacetUtils.AddFacet(Create(attribute, holder));
 }
 private static bool Process(MemberInfo member, IFacetHolder holder) {
     var attribute = member.GetCustomAttribute<DisabledAttribute>();
     IDisabledFacet disabledFacet = Create(attribute, holder);
     if (disabledFacet != null) {
         return FacetUtils.AddFacet(disabledFacet);
     }
     return false;
 }
        private bool Process(MemberInfo member, Type methodReturnType, IFacetHolder holder) {
            if (CollectionUtils.IsGenericEnumerable(methodReturnType) || CollectionUtils.IsCollection(methodReturnType)) {
                var attribute = member.GetCustomAttribute<TableViewAttribute>();
                return FacetUtils.AddFacet(Create(attribute, holder));
            }

            return false;
        }
 public CustomAttributeNamedArgument(System.Reflection.MemberInfo memberInfo, CustomAttributeTypedArgument typedArgument)
 {
     if (memberInfo == null)
     {
         throw new ArgumentNullException("memberInfo");
     }
     this.m_memberInfo = memberInfo;
     this.m_value = typedArgument;
 }
 private static bool Process(MemberInfo member, IFacetHolder holder) {
     // give priority to Idempotent as more restrictive 
     if (member.GetCustomAttribute<IdempotentAttribute>() != null) {
         return FacetUtils.AddFacet(new IdempotentFacetAnnotation(holder));
     }
     if (member.GetCustomAttribute<QueryOnlyAttribute>() != null) {
         return FacetUtils.AddFacet(new QueryOnlyFacetAnnotation(holder));
     }
     return false;
 }
 public CustomAttributeNamedArgument(System.Reflection.MemberInfo memberInfo, object value)
 {
     if (memberInfo == null)
     {
         throw new ArgumentNullException("memberInfo");
     }
     Type argumentType = null;
     FieldInfo info = memberInfo as FieldInfo;
     PropertyInfo info2 = memberInfo as PropertyInfo;
     if (info != null)
     {
         argumentType = info.FieldType;
     }
     else
     {
         if (info2 == null)
         {
             throw new ArgumentException(Environment.GetResourceString("Argument_InvalidMemberForNamedArgument"));
         }
         argumentType = info2.PropertyType;
     }
     this.m_memberInfo = memberInfo;
     this.m_value = new CustomAttributeTypedArgument(argumentType, value);
 }
コード例 #10
0
 private static bool Process(MemberInfo member, bool isDate, IFacetHolder holder) {
     var attribute = member.GetCustomAttribute<RangeAttribute>();
     return FacetUtils.AddFacet(Create(attribute, isDate, holder));
 }
コード例 #11
0
 public static int GetMetadataToken(this System.Reflection.MemberInfo member)
 {
     throw null;
 }
コード例 #12
0
 public object GetCustomDataToExport(System.Reflection.MemberInfo memberInfo, Type dataContractType)
 {
     return(null);
 }
コード例 #13
0
 /// <summary>
 /// Cria um <see cref="ComposableMember"/> para uma instancia de <see cref="System.Reflection.MemberInfo"/>.
 /// </summary>
 /// <param name="member">Instancia do <see cref="System.Reflection.MemberInfo"/> para criar o <see cref="ComposableMember"/>.</param>
 /// <returns>A <see cref="ComposableMember"/> instance.</returns>
 public static ComposableMember ToComposableMember(this System.Reflection.MemberInfo member)
 {
     return(ComposableMember.Create(member));
 }
コード例 #14
0
 public void NonVirtualMemberNotification(Type type, System.Reflection.MemberInfo memberInfo)
 {
 }
コード例 #15
0
 public void NonProxyableMemberNotification(Type type, System.Reflection.MemberInfo memberInfo)
 {
 }
コード例 #16
0
 protected override Guid GetGuid(System.Reflection.MemberInfo memberInfo)
 {
     return(Guid.NewGuid());
 }
コード例 #17
0
 protected override IValueProvider CreateMemberValueProvider(System.Reflection.MemberInfo member)
 {
     return(member.DeclaringType.Equals(DocumentMetadataType)
                ? ValueProviderCache.GetValueProviderFor(member.Name) as IValueProvider
                : new ReflectionValueProvider(member));
 }
コード例 #18
0
 public virtual void RecordFixup(long objectToBeFixed, System.Reflection.MemberInfo member, long objectRequired)
 {
 }
コード例 #19
0
 internal override bool IsHiddenMember(System.Reflection.MemberInfo member)
 {
     // Generated fields, e.g. "<property_name>k__BackingField"
     return(GeneratedNames.IsGeneratedMemberName(member.Name));
 }
コード例 #20
0
 internal override string FormatMemberName(System.Reflection.MemberInfo member)
 {
     return(member.Name);
 }
 private static bool Process(MemberInfo member, IFacetHolder holder) {
     var attribute = member.GetCustomAttribute<ExcludeFromFindMenuAttribute>();
     return FacetUtils.AddFacet(Create(attribute, holder));
 }
コード例 #22
0
 protected virtual System.Collections.Generic.IEnumerable <object> GetCustomAttributes(System.Reflection.MemberInfo member, System.Collections.Generic.IEnumerable <object> declaredAttributes)
 {
     throw null;
 }
コード例 #23
0
        private static bool Process(MemberInfo member, IFacetHolder holder) {
            Attribute attribute = member.GetCustomAttribute<StringLengthAttribute>() ?? (Attribute) member.GetCustomAttribute<MaxLengthAttribute>();

            return FacetUtils.AddFacet(Create(attribute, holder));
        }
コード例 #24
0
 internal CustomAttributeNamedArgument(System.Reflection.MemberInfo memberInfo, CustomAttributeTypedArgument value)
 {
     this.m_memberInfo = memberInfo;
     this.m_value = value;
 }
コード例 #25
0
 public MemberExpression(Expression expression, System.Reflection.MemberInfo member)
     : this(expression, MemberInfo.Create(member))
 {
 }
コード例 #26
0
        protected override void OnSPInspectorGUI()
        {
            this.serializedObject.Update();

            this.DrawDefaultInspectorExcept("_target", "_restrictedType", "_memberName", "_values", "_mode");
            this.DrawPropertyField("_target"); //uses the SelectableComponent PropertyDrawer
            this.DrawPropertyField("_restrictedType");
            this.serializedObject.ApplyModifiedProperties();

            var targProp         = this.serializedObject.FindProperty("_target");
            var restrictTypeProp = this.serializedObject.FindProperty("_restrictedType");
            var memberProp       = this.serializedObject.FindProperty("_memberName");
            var valuesArrProp    = this.serializedObject.FindProperty("_values");
            var modeProp         = this.serializedObject.FindProperty("_mode");

            var targetRef = EditorHelper.GetTargetObjectOfProperty(targProp) as TriggerableTargetObject;

            if (targetRef == null)
            {
                return;
            }

            //SELECT MEMBER
            System.Reflection.MemberInfo selectedMember = null;
            var restrictType = TypeReferencePropertyDrawer.GetTypeFromTypeReference(restrictTypeProp);

            if (!targetRef.TargetsTriggerArg && targetRef.Target != null &&
                targetRef.Find == TriggerableTargetObject.FindCommand.Direct && targetRef.ResolveBy != TriggerableTargetObject.ResolveByCommand.WithType &&
                targetRef.Target.GetType() != restrictType)
            {
                memberProp.stringValue = SPEditorGUILayout.ReflectedPropertyField(EditorHelper.TempContent("Property", "The property on the target to set."),
                                                                                  targetRef.Target,
                                                                                  memberProp.stringValue,
                                                                                  com.spacepuppy.Dynamic.DynamicMemberAccess.ReadWrite,
                                                                                  out selectedMember,
                                                                                  true);
            }
            else
            {
                if (restrictType == null)
                {
                    if (targetRef.ResolveBy == TriggerableTargetObject.ResolveByCommand.WithType)
                    {
                        restrictType = TypeUtil.FindType(targetRef.ResolveByQuery);
                    }
                    if (restrictType == null)
                    {
                        restrictType = typeof(object);
                    }
                    else
                    {
                        TypeReferencePropertyDrawer.SetTypeToTypeReference(restrictTypeProp, restrictType);
                    }
                }
                memberProp.stringValue = SPEditorGUILayout.ReflectedPropertyField(EditorHelper.TempContent("Property", "The property on the target to set."),
                                                                                  restrictType,
                                                                                  memberProp.stringValue,
                                                                                  out selectedMember,
                                                                                  true);
            }
            this.serializedObject.ApplyModifiedProperties();


            //MEMBER VALUE TO SET TO
            if (selectedMember != null && selectedMember.MemberType == System.Reflection.MemberTypes.Method)
            {
                var methodInfo = selectedMember as System.Reflection.MethodInfo;
                if (methodInfo == null)
                {
                    return;
                }

                var parameters = methodInfo.GetParameters();
                valuesArrProp.arraySize = parameters.Length;

                for (int i = 0; i < parameters.Length; i++)
                {
                    var p         = parameters[i];
                    var valueProp = valuesArrProp.GetArrayElementAtIndex(i);
                    var propType  = p.ParameterType;

                    if (DynamicUtil.TypeIsVariantSupported(propType))
                    {
                        //draw the default variant as the method accepts anything
                        _variantDrawer.RestrictVariantType = false;
                        _variantDrawer.ForcedObjectType    = null;
                        var label = EditorHelper.TempContent("Parameter " + i.ToString(), "The value to set to.");
                        _variantDrawer.OnGUI(EditorGUILayout.GetControlRect(true, _variantDrawer.GetPropertyHeight(valueProp, label)), valueProp, label);
                    }
                    else
                    {
                        _variantDrawer.RestrictVariantType = true;
                        _variantDrawer.TypeRestrictedTo    = propType;
                        _variantDrawer.ForcedObjectType    = (TypeUtil.IsType(propType, typeof(UnityEngine.Object))) ? propType : null;
                        var label = EditorHelper.TempContent("Parameter " + i.ToString(), "The value to set to.");
                        _variantDrawer.OnGUI(EditorGUILayout.GetControlRect(true, _variantDrawer.GetPropertyHeight(valueProp, label)), valueProp, label);
                    }
                }

                modeProp.SetEnumValue(i_SetValueOnTarget.SetMode.Set);
            }
            else if (selectedMember != null)
            {
                var propType = com.spacepuppy.Dynamic.DynamicUtil.GetInputType(selectedMember);
                var emode    = modeProp.GetEnumValue <i_SetValueOnTarget.SetMode>();
                if (emode == i_SetValueOnTarget.SetMode.Toggle)
                {
                    //EditorGUILayout.LabelField(EditorHelper.TempContent(valueProp.displayName), EditorHelper.TempContent(propType.Name));
                    valuesArrProp.arraySize = 0;
                    var evtp  = VariantReference.GetVariantType(propType);
                    var cache = SPGUI.Disable();
                    EditorGUILayout.EnumPopup(EditorHelper.TempContent("Value"), evtp);
                    cache.Reset();
                }
                else
                {
                    valuesArrProp.arraySize = 1;
                    var valueProp = valuesArrProp.GetArrayElementAtIndex(0);
                    if (DynamicUtil.TypeIsVariantSupported(propType))
                    {
                        //draw the default variant as the method accepts anything
                        _variantDrawer.RestrictVariantType = false;
                        _variantDrawer.ForcedObjectType    = null;
                        var label = EditorHelper.TempContent("Value", "The value to set to.");
                        _variantDrawer.OnGUI(EditorGUILayout.GetControlRect(true, _variantDrawer.GetPropertyHeight(valueProp, label)), valueProp, label);
                    }
                    else
                    {
                        _variantDrawer.RestrictVariantType = true;
                        _variantDrawer.TypeRestrictedTo    = propType;
                        _variantDrawer.ForcedObjectType    = (TypeUtil.IsType(propType, typeof(UnityEngine.Object))) ? propType : null;
                        var label = EditorHelper.TempContent("Value", "The value to set to.");
                        _variantDrawer.OnGUI(EditorGUILayout.GetControlRect(true, _variantDrawer.GetPropertyHeight(valueProp, label)), valueProp, label);
                    }
                }

                if (com.spacepuppy.Dynamic.Evaluator.WillArithmeticallyCompute(propType))
                {
                    EditorGUILayout.PropertyField(modeProp);
                }
                else
                {
                    //modeProp.SetEnumValue(i_SetValueOnTarget.SetMode.Set);
                    EditorGUI.BeginChangeCheck();
                    emode = (i_SetValueOnTarget.SetMode)SPEditorGUILayout.EnumPopupExcluding(EditorHelper.TempContent(modeProp.displayName), emode, i_SetValueOnTarget.SetMode.Decrement, i_SetValueOnTarget.SetMode.Increment);
                    if (EditorGUI.EndChangeCheck())
                    {
                        modeProp.SetEnumValue(emode);
                    }
                }
            }
            else
            {
                modeProp.SetEnumValue(i_SetValueOnTarget.SetMode.Set);
            }

            this.serializedObject.ApplyModifiedProperties();
        }
コード例 #27
0
 internal static MemberInfo Reflected(System.Reflection.MemberInfo member) =>
 member switch
 {
コード例 #28
0
//			public Test Decorate(Test test, Type fixtureType)
//			{
//				// TODO:  Add Decorator.Decorate implementation
//				return null;
//			}

            public Test Decorate(Test test, System.Reflection.MemberInfo member)
            {
                // TODO:  Add Decorator.NUnit.Core.ITestDecorator.Decorate implementation
                return(null);
            }
コード例 #29
0
 private static bool Process(MemberInfo member, IFacetHolder holder) {
     var attribute = member.GetCustomAttribute<TypicalLengthAttribute>();
     return FacetUtils.AddFacet(Create(attribute, holder));
 }
コード例 #30
0
 private static bool Process(MemberInfo member, IFacetHolder holder) {
     return Process(member.GetCustomAttribute<HiddenAttribute>,
                    member.GetCustomAttribute<ScaffoldColumnAttribute>, holder);
 }
コード例 #31
0
 string?Azure.Core.Serialization.IMemberNameConverter.ConvertMemberName(System.Reflection.MemberInfo member)
 {
     throw null;
 }
コード例 #32
0
 public object GetCustomDataToExport(System.Reflection.MemberInfo memberInfo, Type dataContractType)
 {
     throw new NotImplementedException();
 }
コード例 #33
0
 protected override IValueProvider CreateMemberValueProvider(System.Reflection.MemberInfo member)
 {
     return(new GenericDataValueProvider(member, base.CreateMemberValueProvider(member), SensitiveProperties));
 }
コード例 #34
0
        private void DrawAdvanced_CallMethodOnSelected(Rect area, SerializedProperty property)
        {
            //Draw Target
            var targRect  = new Rect(area.xMin, area.yMin, area.width, EditorGUIUtility.singleLineHeight);
            var targProp  = property.FindPropertyRelative(TriggerTargetProps.PROP_TRIGGERABLETARG);
            var targLabel = new GUIContent("Triggerable Target");
            var targGo    = GameObjectUtil.GetGameObjectFromSource(targProp.objectReferenceValue);
            var newTargGo = EditorGUI.ObjectField(targRect, targLabel, targGo, typeof(GameObject), true) as GameObject;

            if (newTargGo != targGo)
            {
                targGo = newTargGo;
                targProp.objectReferenceValue = (targGo != null) ? targGo.transform : null;
            }

            var targCompPopupRect = new Rect(area.xMin, targRect.yMax, area.width, EditorGUIUtility.singleLineHeight);

            if (targGo != null)
            {
                EditorGUI.BeginChangeCheck();
                var selectedComp = SPEditorGUI.SelectComponentFromSourceField(targCompPopupRect, "Target Component", targGo, targProp.objectReferenceValue as Component);
                if (EditorGUI.EndChangeCheck())
                {
                    targProp.objectReferenceValue = selectedComp;
                }
            }
            else
            {
                EditorGUI.LabelField(targCompPopupRect, "Target Component", "(First Select a Target)");
            }

            //Draw Method Name
            var methNameRect = new Rect(area.xMin, targCompPopupRect.yMax, area.width, EditorGUIUtility.singleLineHeight);

            System.Reflection.MemberInfo selectedMember = null;
            if (targProp.objectReferenceValue != null)
            {
                var methProp = property.FindPropertyRelative(TriggerTargetProps.PROP_METHODNAME);

                //var tp = targProp.objectReferenceValue.GetType();
                //var members = GetAvailableMethods(tp).ToArray();

                //var members = com.spacepuppy.Dynamic.DynamicUtil.GetEasilySerializedMembers(targProp.objectReferenceValue, System.Reflection.MemberTypes.Method).ToArray();
                var members = com.spacepuppy.Dynamic.DynamicUtil.GetEasilySerializedMembers(targProp.objectReferenceValue, System.Reflection.MemberTypes.All, spacepuppy.Dynamic.DynamicMemberAccess.Write).ToArray();
                System.Array.Sort(members, (a, b) => string.Compare(a.Name, b.Name, true));
                var memberNames = members.Select((m) => m.Name).ToArray();

                int index = System.Array.IndexOf(memberNames, methProp.stringValue);
                index = EditorGUI.Popup(methNameRect, new GUIContent("Method", "The method/prop on the target to call."), index, (from n in memberNames select new GUIContent(n)).ToArray());
                methProp.stringValue = (index >= 0) ? memberNames[index] : null;
                selectedMember       = (index >= 0) ? members[index] : null;
            }
            else
            {
                EditorGUI.Popup(methNameRect, new GUIContent("Method", "The method/prop on the target to call."), -1, new GUIContent[0]);
            }

            property.serializedObject.ApplyModifiedProperties();

            //Draw Triggerable Arg
            var parr = (selectedMember != null) ? com.spacepuppy.Dynamic.DynamicUtil.GetDynamicParameterInfo(selectedMember) : null;

            if (parr == null || parr.Length == 0)
            {
                //NO PARAMETERS
                _callMethodModeExtraLines = 1;

                var argRect      = new Rect(area.xMin, methNameRect.yMax, area.width, EditorGUIUtility.singleLineHeight);
                var argArrayProp = property.FindPropertyRelative(TriggerTargetProps.PROP_TRIGGERABLEARGS);
                if (argArrayProp.arraySize > 0)
                {
                    argArrayProp.arraySize = 0;
                    argArrayProp.serializedObject.ApplyModifiedProperties();
                }

                var cache = SPGUI.Disable();
                EditorGUI.LabelField(argRect, GUIContent.none, new GUIContent("*Zero Parameter Count*"));
                cache.Reset();
            }
            else
            {
                //MULTIPLE PARAMETERS - special case, does not support trigger event arg
                _callMethodModeExtraLines = parr.Length;

                var argArrayProp = property.FindPropertyRelative(TriggerTargetProps.PROP_TRIGGERABLEARGS);

                if (argArrayProp.arraySize != parr.Length)
                {
                    argArrayProp.arraySize = parr.Length;
                    argArrayProp.serializedObject.ApplyModifiedProperties();
                }

                EditorGUI.indentLevel++;
                for (int i = 0; i < parr.Length; i++)
                {
                    var paramType = parr[i].ParameterType;
                    var argRect   = new Rect(area.xMin, methNameRect.yMax + i * EditorGUIUtility.singleLineHeight, area.width, EditorGUIUtility.singleLineHeight);
                    var argProp   = argArrayProp.GetArrayElementAtIndex(i);

                    if (paramType == typeof(object))
                    {
                        //draw the default variant as the method accepts anything
                        _variantDrawer.RestrictVariantType = false;
                        _variantDrawer.ForcedObjectType    = null;
                        _variantDrawer.OnGUI(argRect, argProp, EditorHelper.TempContent("Arg " + i.ToString() + ": " + parr[i].ParameterName, "A parameter to be passed to the method if needed."));
                    }
                    else
                    {
                        _variantDrawer.RestrictVariantType = true;
                        _variantDrawer.TypeRestrictedTo    = paramType;
                        _variantDrawer.ForcedObjectType    = (paramType.IsInterface || TypeUtil.IsType(paramType, typeof(Component))) ? paramType : null;
                        _variantDrawer.OnGUI(argRect, argProp, EditorHelper.TempContent("Arg " + i.ToString() + ": " + parr[i].ParameterName, "A parameter to be passed to the method if needed."));
                    }
                }
                EditorGUI.indentLevel--;
            }
        }
 private static bool Process(MemberInfo member, IFacetHolder holder) {
     var attribute = member.GetCustomAttribute<PresentationHintAttribute>();
     return FacetUtils.AddFacet(Create(attribute, holder));
 }
コード例 #36
0
        /// <summary>
        /// Recuperae o cardinalidade do membro informado.
        /// </summary>
        /// <param name="member"></param>
        /// <param name="allowDefault"></param>
        /// <returns></returns>
        public static System.ComponentModel.Composition.Primitives.ImportCardinality GetCardinality(this System.Reflection.MemberInfo member, bool allowDefault)
        {
            var propertyInfo = member as System.Reflection.PropertyInfo;

            if (propertyInfo != null)
            {
                if (propertyInfo.PropertyType.IsEnumerable())
                {
                    return(System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrMore);
                }
                return((allowDefault) ? System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrOne : System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne);
            }
            var fieldInfo = member as System.Reflection.FieldInfo;

            if (fieldInfo != null)
            {
                if (fieldInfo.FieldType.IsEnumerable())
                {
                    return(System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrMore);
                }
                return((allowDefault) ? System.ComponentModel.Composition.Primitives.ImportCardinality.ZeroOrOne : System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne);
            }
            if (member is System.Reflection.ConstructorInfo)
            {
                return(System.ComponentModel.Composition.Primitives.ImportCardinality.ExactlyOne);
            }
            throw new System.ComponentModel.Composition.ImportCardinalityMismatchException();
        }