Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ IsValidCallback()

static bool System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.IsValidCallback ( MethodInfo method,
ParameterInfo[] parameters,
Type attributeType,
MethodInfo currentCallback,
ref Type prevAttributeType )
inlinestaticprivate

Definition at line 756 of file ClassDataContract.cs.

757 {
758 if (method.IsDefined(attributeType, inherit: false))
759 {
760 if (currentCallback != null)
761 {
762 DataContract.ThrowInvalidDataContractException(System.SR.Format(System.SR.DuplicateCallback, method, currentCallback, DataContract.GetClrTypeFullName(method.DeclaringType), attributeType), method.DeclaringType);
763 }
764 else if (prevAttributeType != null)
765 {
766 DataContract.ThrowInvalidDataContractException(System.SR.Format(System.SR.DuplicateAttribute, prevAttributeType, attributeType, DataContract.GetClrTypeFullName(method.DeclaringType), method), method.DeclaringType);
767 }
768 else if (method.IsVirtual)
769 {
770 DataContract.ThrowInvalidDataContractException(System.SR.Format(System.SR.CallbacksCannotBeVirtualMethods, method, DataContract.GetClrTypeFullName(method.DeclaringType), attributeType), method.DeclaringType);
771 }
772 else
773 {
774 if (method.ReturnType != Globals.TypeOfVoid)
775 {
776 DataContract.ThrowInvalidDataContractException(System.SR.Format(System.SR.CallbackMustReturnVoid, DataContract.GetClrTypeFullName(method.DeclaringType), method), method.DeclaringType);
777 }
778 if (parameters == null || parameters.Length != 1 || parameters[0].ParameterType != Globals.TypeOfStreamingContext)
779 {
780 DataContract.ThrowInvalidDataContractException(System.SR.Format(System.SR.CallbackParameterInvalid, DataContract.GetClrTypeFullName(method.DeclaringType), method, Globals.TypeOfStreamingContext), method.DeclaringType);
781 }
782 prevAttributeType = attributeType;
783 }
784 return true;
785 }
786 return false;
787 }
DataContract(DataContractCriticalHelper helper)
static string CallbackMustReturnVoid
Definition SR.cs:30
static string CallbacksCannotBeVirtualMethods
Definition SR.cs:34
static string DuplicateAttribute
Definition SR.cs:80
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string DuplicateCallback
Definition SR.cs:82
static string CallbackParameterInvalid
Definition SR.cs:32
Definition SR.cs:7

References System.SR.CallbackMustReturnVoid, System.SR.CallbackParameterInvalid, System.SR.CallbacksCannotBeVirtualMethods, System.Runtime.Serialization.Dictionary, System.SR.DuplicateAttribute, System.SR.DuplicateCallback, System.SR.Format(), System.Runtime.Serialization.DataContract.GetClrTypeFullName(), System.Reflection.ParameterInfo.ParameterType, System.Runtime.Serialization.DataContract.ThrowInvalidDataContractException(), System.Runtime.Serialization.Globals.TypeOfStreamingContext, and System.Runtime.Serialization.Globals.TypeOfVoid.

Referenced by System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.EnsureMethodsImported().