Mono.Xaml.ManagedXamlLoader.SetProperty C# (CSharp) Метод

SetProperty() приватный Метод

private SetProperty ( XamlCallbackData data, string xmlns, Value target_ptr, IntPtr target_data, Value target_parent_ptr, string prop_xmlns, string name, Value value_ptr, IntPtr value_data ) : bool
data XamlCallbackData
xmlns string
target_ptr Mono.Value
target_data System.IntPtr
target_parent_ptr Mono.Value
prop_xmlns string
name string
value_ptr Mono.Value
value_data System.IntPtr
Результат bool
		private unsafe bool SetProperty (XamlCallbackData *data, string xmlns, Value* target_ptr, IntPtr target_data, Value* target_parent_ptr, string prop_xmlns, string name, Value* value_ptr, IntPtr value_data)
		{
			string error;
			object target = Value.ToObject (null, target_ptr);

			if (target == null) {
				Console.Error.WriteLine ("target is null: {0} {1} {2}", (IntPtr)target_ptr, name, xmlns);
				return false;
			}

			if (name == null) {
				if (TrySetEnumContentProperty (data, xmlns, target, target_ptr, target_data, value_ptr, value_data))
					return true;
				if (TrySetCollectionContentProperty (xmlns, target, target_ptr, target_data, value_ptr, value_data))
					return true;
				if (TrySetObjectTextProperty (data, xmlns, target, target_ptr, target_data, value_ptr, value_data))
					return true;
				Console.Error.WriteLine ("no property name supplied");
				return false;
			}

			string full_name = name;
			int dot = name.IndexOf ('.');
			string type_name = null;

			if (dot >= 0) {
				type_name = name.Substring (0, dot);
				if (prop_xmlns != null) {
					string ns = ClrNamespaceFromXmlns (prop_xmlns);
					if (ns != null)
						type_name = String.Concat (ns, ".", type_name);
				}
				name = name.Substring (++dot, name.Length - dot);
			}

			if (TrySetExpression (data, xmlns, target, target_data, target_parent_ptr, type_name, prop_xmlns, name, full_name, value_ptr, value_data))
				return true;

			if (!IsAttachedProperty (data, target, xmlns, prop_xmlns, full_name)) {
				if (TrySetPropertyReflection (data, xmlns, target, target_data, target_parent_ptr, type_name, name, value_ptr, value_data, out error))
					return true;

				if (TrySetEventReflection (data, xmlns, target, type_name, name, value_ptr, out error))
					return true;
			} else {
				if (TrySetAttachedProperty (data, xmlns, target, target_data, prop_xmlns, full_name, value_ptr))
					return true;
			}

			
			return false;
		}