コード例 #1
0
        protected override void ProcessOperationReturn(IEdmOperationReturn operationReturn)
        {
            if (operationReturn == null)
            {
                return;
            }

            bool inlineType = IsInlineType(operationReturn.Type);

            this.BeginElement(
                operationReturn.Type,
                type => this.schemaWriter.WriteReturnTypeElementHeader(operationReturn),
                type =>
            {
                if (inlineType)
                {
                    this.schemaWriter.WriteTypeAttribute(type);
                    this.ProcessFacets(type, true /*inlineType*/);
                }
                else
                {
                    this.VisitTypeReference(type);
                }
            });
            this.EndElement(operationReturn);
        }
コード例 #2
0
        protected virtual void ProcessOperation(IEdmOperation operation)
        {
            // Do not visit vocabularyAnnotatable because functions and operation imports are always going to be either a schema element or a container element and will be visited through those paths.
            this.VisitOperationParameters(operation.Parameters);

            IEdmOperationReturn operationReturn = operation.GetReturn();

            this.ProcessOperationReturn(operationReturn);
        }
コード例 #3
0
        protected virtual void ProcessOperationReturn(IEdmOperationReturn operationReturn)
        {
            if (operationReturn == null)
            {
                return;
            }

            this.ProcessVocabularyAnnotatable(operationReturn);
            this.VisitTypeReference(operationReturn.Type);
        }
コード例 #4
0
        private void ProcessOperation <TOperation>(TOperation operation, Action <TOperation> writeElementAction) where TOperation : IEdmOperation
        {
            this.BeginElement(operation, writeElementAction);
            this.VisitOperationParameters(operation.Parameters);

            IEdmOperationReturn operationReturn = operation.GetReturn();

            this.ProcessOperationReturn(operationReturn);

            this.EndElement(operation);
        }
コード例 #5
0
        public void GetReturnShouldReturnCorrectly()
        {
            IEdmTypeReference typeReference = EdmCoreModel.Instance.GetString(true);
            var function = new EdmFunction("d.s", "checkout", typeReference);
            IEdmOperationReturn operationReturn = function.GetReturn();

            Assert.NotNull(operationReturn);
            Assert.Same(operationReturn, function.Return);
            Assert.Same(operationReturn.Type, function.ReturnType);
            Assert.Same(operationReturn.DeclaringOperation, function);
        }
コード例 #6
0
 internal override void WriteReturnTypeElementHeader(IEdmOperationReturn operationReturn)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_ReturnType);
 }
コード例 #7
0
 internal abstract void WriteReturnTypeElementHeader(IEdmOperationReturn operationReturn);