Microsoft MVP성태의 닷넷 이야기
WCF Service측에서 parameter 값이 null이 오는 이유를 알고 싶어요. [링크 복사], [링크+제목 복사],
조회: 19374
글쓴 사람
달쏭
홈페이지
첨부 파일
 

pda에서 쓰는 WCF를 수정해서 하고 있는데요.

client는 NetCFSvcUtil를 통해서 proxy를 만들고 있습니다.
client는 고칠 수 없게 되있어서 이거에 맞춰서 서버쪽을 수정해야 하는데요.

보통 서버쪽 값에 널이 오는 경우는 Client와 Service쪽이 서로 namespace나 name이 안맞는 경우가 있다고 해서 일일이 다 확인해봤는데도 두개의 파라미터 중 하나만 값이 널로 들어오네요.

서버측:
public PickTripReturnResponse ReturnPickTrip(PickTripReturnRequest request1, CallContext callContext)
{ ...
}
callContext는 값이 제대로 들어오는데 request1 값이 null인데요.


 [DataContract(Namespace = "http://tempuri.org/")]
 public class PickTripReturnRequest
 {
      [DataMember(Order = 0)]
      public ReturnedPickTripDTO ReturnedPickTrip { get; set; }

      [DataMember(Order = 1)]
      public PersonalShopperDTO PersonalShopper { get; set; }

      [DataMember(IsRequired = false, Order = 2)]
      public MisplacedProductDTO[] MisplacedProducts { get; set; }
 }


클라이언트측:
/// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("NetCFSvcUtil", "3.5.0.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://tempuri.org/")]
    public partial class PickTripReturnRequest
    {

        private ReturnedPickTripDTO returnedPickTripField;

        private PersonalShopperDTO personalShopperField;

        private MisplacedProductDTO[] misplacedProductsField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Order = 0)]
        public ReturnedPickTripDTO ReturnedPickTrip
        {
            get
            {
                return this.returnedPickTripField;
            }
            set
            {
                this.returnedPickTripField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Order = 1)]
        public PersonalShopperDTO PersonalShopper
        {
            get
            {
                return this.personalShopperField;
            }
            set
            {
                this.personalShopperField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayAttribute(Order = 2)]
        public MisplacedProductDTO[] MisplacedProducts
        {
            get
            {
                return this.misplacedProductsField;
            }
            set
            {
                this.misplacedProductsField = value;
            }
        }
    }

혹시 MisplacedProductDTO[] 배열때문에 다른 셋팅을 더 해줘야 하는 건가요?
collecion은 KnownType을 해주는게 있던데요..

포함되는 DataContract이 워낙 많기에 다 쓸순 없구요. 다른 DataContract도 배열이 포함되어 있는 저런 형태로 구성되어 있는게 몇 개 있습니다.

처음부터 제가 만든게 아니라 다른 사람이 만든거에 수정을 해야 되는거라서 서버쪽만 제가 변경된 부분을 추가하고 있어서요..

고수님들 좀 알려주세요~~~ 며칠동안 하나하나 다 맞춰봤는데 대체 어디가 잘못된 건지 알수가 없네요.

서버쪽에서 null이 들어오는 경우는 어떤 경우가 또 있는지...








[최초 등록일: ]
[최종 수정일: 9/25/2014]


비밀번호

댓글 작성자
 



2014-09-25 11시04분
얼핏 봐서는 괜찮을 것 같은데요. 그럼, 거꾸로 한번 해보세요. WCF 서비스를 만들고 NetCFSvcUtil 써서 현재 클라이언트 코드와 비슷하게 나오고 그대로 잘 전달되는지...를 보면 되지 않을까 싶습니다. (아니면, 서버쪽도 전통적인 XmlSerializer 방식으로 data model을 꾸며 보시거나.) 어쨌든 뭔가가 맞지 않는 부분이 있으니까 null이 나오겠죠? ^^
정성태
2014-09-26 02시16분
[달쏭] 현재 클라이언트 코드와 제가 NetCFSvcUtil로 만든 코드의 차이는 제가 만든거에 IsNullable = true 가 추가된 거 말고는 차이가 없는거 같은데 그래도 계속 안돼서
제가 만든 클라이언트 코드로 하기로 결정되었네요.. 기존 클라이언트 코드를 전혀 수정 못하게 할 줄 알았는데 이 정도는 수정해도 된다고 해서요.
답변 감사드립니다.
[guest]

1  2  [3]  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5914한상욱8/11/202313176.net wpf에서 skiasharp 의 skelement 를 canvas로 사용 하고 있습니다. [1]
5913김태우8/10/202312869지역변수로 이해하는 메서드매개변수 게시글 댓글 [3]
5912guest4/25/202318249[참고 - 초보용] Sqlite 디비는 double이 없고 Real이 대신합니다 [3]
5911guest4/24/202312484Form1.cs와 외부 class.cs와 통신 (static async method포함) [4]파일 다운로드1
5910guest4/24/202311888Async 메서드와 try~catch [1]
5909guest4/22/202313176Visual Studio 구매 시(1인 개발자) [4]
5908guest4/22/202312608텅빈 원그리기 [5]
5907민성4/21/202312405안녕하세요 서버 백업 문제에 대해서 [2]
5906guest4/21/202312734Dispatcher 서비스 구현 질문 [1]
5905guest4/20/202313670tabControl의 tabPage가 여러 개일 때 순서를 바꾸기가 까다롭네요 [5]
5904guest4/18/202313822[신규자료첨부] DLL 'SQLite.Interop.dll'을 찾을 수 없습니다 [4]파일 다운로드1
5903guest4/18/202312494fileSystemWatcher 이벤트 관련 질문입니다 [2]
5902guest4/17/202313625c#으로 USB 관련 질문 [2]
5901guest4/17/202311427내솔루션 판매 시 1.0.0.0 폴더와 Sqlite 배포 [5]
5900guest4/17/202314070DLL 'SQLite.Interop.dll'을 찾을 수 없습니다 [2]파일 다운로드1
5899guest4/17/202312341Dictionary와 Linq [4]
5898차가워4/17/202312112CNTK 교육 문의 [1]
5897guest4/17/202311842Socket스레드와 UI thread [4]
5896HAN4/16/202311762c언어 return 에 대해 궁금한게 있어요. [1]파일 다운로드1
5895guest4/15/202312092Drag and Drop - 모든 컨트롤 [2]
5894송부장4/14/202313779[질문] Visual Studio 2022에서 '도구 상자 항목 선택'의 'COM 구성 요소' 탭에서 ActiveX 목록이 보이지 않습니다. [3]파일 다운로드2
5893감사합니...4/14/202311695오라클 OLEDB방식 접속 후 SELECT 'TEST' TEST_VALUE FROM DUAL의 값이 이상합니다. [1]
5892한무4/14/202311616C# 으로 백그라운드에서 워드를 실행하여 매크로 실행이 가능 할까요? [2]
5891리세4/14/202312798안녕하세요.C# 서버프로그램에서의 Mysql 쿼리문제(다중쿼리 실행)에 대해 문의드립니다. [2]
5890guest4/14/202313695C# 프리랜서로 돈 벌려면 성태님 책 마스터하면 되나요? [6]
5889전예찬4/14/202311711C# 파일 복사 관련 질문 드립니다. [3]
1  2  [3]  4  5  6  7  8  9  10  11  12  13  14  15  ...