AMcoder - javascript, python, java, html, php, sql

WCF սերիականացման սխալ ArrayOfstring տվյալների պայմանագրով

Ստանո՞ւմ եմ ստորև նշված սխալ, երբ ես զանգահարում եմ իմ WCF ծառայությանը: Ինչպե՞ս կարող եմ ազատվել դրանից:

Պարամետրը սերիականացնելու փորձի ժամանակ սխալ առաջացավ http://tempuri.org/:MyWCFSvc.svc InnerException հաղորդագրությունն էր «Type «System.String[]»՝ տվյալների պայմանագրի անվանումով «ArrayOfstring.http://schemas.microsoft.com/2003/10/Serialization/Arrays' չի սպասվում: Հայտնի տեսակների ցանկին ավելացրեք ստատիկորեն անհայտ տիպեր, օրինակ՝ օգտագործելով KnownTypeAttribute հատկանիշը կամ ավելացնելով դրանք DataContractSerializer-ին փոխանցված հայտնի տեսակների ցանկին:': Լրացուցիչ մանրամասների համար տե՛ս InnerException:*

Ես փորձեցի օգտագործել [ServiceKnownType(typeof(string[]))] իմ WCF ծառայության միջերեսում, բայց հաջողություն չունեցա

30.03.2009

  • Կարո՞ղ եք տրամադրել կոդի նմուշ, որն առաջացնում է այս խնդիրը: 30.03.2009

Պատասխանները:


1

Մեկ տարի ուշացումով, բայց ես ունեի նույն խնդիրը, և ահա թե ինչ պետք է անեք

List<SomeClass> mylist = new List<SomeClass>();

DataContractSerializer dcs = new DataContractSerializer(mylist.GetType());
XmlWriter writer = XmlWriter.Create(sb, XWS);
dcs.WriteObject(writer, query);      
writer.Close();

Խնդիրն այն է, երբ դուք կառուցում եք ձեր սերիալիզատորը ձեր դասի տիպով, սերիալիզատորը այն չի տեսնում որպես զանգված, այն տեսնում է միայն մեկ օբյեկտ:

Եթե ​​դա գտել եք՝ նախ սա անելով.

DataContractSerializer dcs = new DataContractSerializer(SomeClass.GetType());
XmlWriter writer = XmlWriter.Create(sb, XWS);
dcs.WriteObject(writer, query[0]);  // Only get the first record from linq to sql
writer.Close();
16.02.2010
  • @KenL. շնորհակալություն պատասխանելու համար, բայց քանի որ OP-ը երբեք չի տեղադրել իր օգտագործած կոդը, ինչպե՞ս գիտեք, որ ձեր լուծումը կլուծեր նրա խնդիրը: Դուք միայն գիտեք, որ դուք ստացել եք նմանատիպ բացառություն: Դա կարող էր առաջանալ բոլորովին այլ բանով: 17.02.2010

  • 2

    Ես նույնպես ունեի նույն խնդիրները, բայց [ServiceKnownType(typeof(string[]))]-ի և [ServiceKnownType(typeof(int[]))]-ի հետ Գործառնական պայմանագիրը որակավորելուց հետո խնդիրը շտկվեց:

    Eg:

    [ServiceContract]
        public interface IReportService
        {
            [OperationContract]
            [ServiceKnownType(typeof(string[]))]
            [ServiceKnownType(typeof(int[]))]
            bool GenerateReport(int clientId, int masterId, string reportType, int[] vtIds, DateTime initialDate, DateTime finalDate,
                                bool descending, string userName, string timeZoneId, bool embedMap,
                                object[] vtExtraParameters, object[] vtScheduleParameters, string selectedCriteria,
                                out long reportID, out int scheduleID, out string message);
    
    04.12.2012
  • Իմ խնդիրն այն էր, որ վերադարձվող DataContract կառուցվածքներից մեկը ներառում էր օբյեկտի տիպի DataMember, որին սովորաբար վերագրվում էր տվյալների ներքին տեսակ (որն աշխատում է), բայց երբեմն նշանակվում էր տող[] (որը ձախողվում է): Վերևի պես միայն [ServiceKnownType(typeof(string[]))] ավելացնելով այս խնդիրը լուծվեց: 26.11.2013

  • 3

    Ոչ մի պատճառ չկա, որ դուք ստիպված լինեք KnownType տողերի զանգված: Սերիալիզատորն արդեն պետք է իմանա այդ մասին, և զանգվածները խնդիր չեն։ Ես տեղափոխում եմ իրերի ցուցակները WCF-ում առանց խնդրի: Կարո՞ղ եք տեղադրել ներկայացուցչական նմուշ, թե ինչ եք անում:

    30.03.2009

    4

    Ձեր հաճախորդի վրա ծառայության հղումների կազմաձևումն ապահովում է «Տվյալների տեսակ» ընտրանքներ, որոնք թույլ են տալիս տարբեր տեսակներ նշել Հավաքածուի/Բառարանի տեսակների համար: Ի՞նչ կարգավորումներ ունեք այնտեղ:

    31.03.2009
    Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..