2017-01-15 2 views
0

Я пытаюсь удалить значение из public enum в моем проекте. Проблема, что у меня есть, что в любое время я удалить значение, я получаю сообщение об ошибке изУдалить значение из общедоступного Enum

Существует ошибка в документе XML (1,2909)

Что с этим кодом, который предотвращает меня от удаления элемента?

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.1586.0")] 
[System.SerializableAttribute()] 
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http:Site")] 
public enum TDOTT { 

    /// <remarks/> 
    AD,   
    /// <remarks/> 
    AP, 
    /// <remarks/> 
    AT, 
    /// <remarks/> 
    AT1, 
    /// <remarks/> 
    AD1, 
    /// <remarks/> 
    ED, 
    /// <remarks/> 
    EP, 
    /// <remarks/> 
    SP, 
} 

Если требуется дальнейший код, пожалуйста, дайте мне знать, и я буду рад предоставить.

EDIT
Это то, что он выглядит, когда удаляется элемент (я вручную удалить)

public enum TDOTT { 

    /// <remarks/> 
    AD,   
    /// <remarks/> 
    AP, 
    /// <remarks/> 
    AT, 
    /// <remarks/> 
    AT1, 
    /// <remarks/> 
    AD1, 
    /// <remarks/> 
    ED, 
    /// <remarks/> 
    EP, 
} 

И вот как это называется использованием C#

foreach (TDOTT ts in td.DOT) 
{ 
    Console.WriteLine("{0}: {1}", ts.T, ts.D);          
} 

EDIT 2
Это еще один синтаксис C# и комментарий над строкой, которая создает ошибку

static void Main(string[] args) 
    { 
     List<string> tempList = new List<string> { "666288603319" }; 

     try 
     { 
      foreach (var trackingNumber in tempList) 
      { 
       TrackRequest request = CreateTrackRequest(trackingNumber); 
       TrackService service = new TrackService(); 
       //The below line is hit and error is thrown 
       TrackReply reply = service.track(request); 
      } 
     } 
     catch (SoapException e) 
     { 
      Console.WriteLine(e.Detail.InnerText); 
     } 
    } 
    private static TrackRequest CreateTrackRequest(string trackingNumber) 
    { 
     TrackRequest request = new TrackRequest(); 

     request.WebAuthenticationDetail = new WebAuthenticationDetail(); 
     request.WebAuthenticationDetail.UserCredential = new WebAuthenticationCredential(); 
     request.WebAuthenticationDetail.UserCredential.Key = usercredentialKEY; 
     request.WebAuthenticationDetail.UserCredential.Password = usercredentialPassword; 
     request.WebAuthenticationDetail.ParentCredential = new WebAuthenticationCredential(); 
     request.WebAuthenticationDetail.ParentCredential.Key = parentcredentialKEY; 
     request.WebAuthenticationDetail.ParentCredential.Password = parentcredentialPassword; 

     request.ClientDetail = new ClientDetail(); 
     request.ClientDetail.AccountNumber = AccountNumber; 
     request.ClientDetail.MeterNumber = MeterNumber; 

     request.TransactionDetail = new TransactionDetail(); 
     request.TransactionDetail.CustomerTransactionId = "any value"; //This is a reference field for the customer. Any value can be used and will be provided in the response. 

     request.Version = new VersionId(); 

     request.SelectionDetails = new TrackSelectionDetail[1] { new TrackSelectionDetail() }; 
     request.SelectionDetails[0].PackageIdentifier = new TrackPackageIdentifier(); 
     request.SelectionDetails[0].PackageIdentifier.Value = trackingNumber; 

     request.SelectionDetails[0].PackageIdentifier.Type = TrackIdentifierType.TRACKING_NUMBER_OR_DOORTAG; 
     request.SelectionDetails[0].ShipDateRangeBeginSpecified = false; 
     request.SelectionDetails[0].ShipDateRangeEndSpecified = false; 

     request.ProcessingOptions = new TrackRequestProcessingOptionType[1] { new TrackRequestProcessingOptionType() }; 
     request.ProcessingOptions[0] = TrackRequestProcessingOptionType.INCLUDE_DETAILED_SCANS; 

     return request; 
    } 

EDIT 3
Это TrackRequest Класс synatx

public partial class TrackRequest { 

    private WebAuthenticationDetail webAuthenticationDetailField; 

    private ClientDetail clientDetailField; 

    private TransactionDetail transactionDetailField; 

    private VersionId versionField; 

    private TrackSelectionDetail[] selectionDetailsField; 

    private string transactionTimeOutValueInMillisecondsField; 

    private TrackRequestProcessingOptionType[] processingOptionsField; 

    /// <remarks/> 
    public WebAuthenticationDetail WebAuthenticationDetail { 
     get { 
      return this.webAuthenticationDetailField; 
     } 
     set { 
      this.webAuthenticationDetailField = value; 
     } 
    } 

    /// <remarks/> 
    public ClientDetail ClientDetail { 
     get { 
      return this.clientDetailField; 
     } 
     set { 
      this.clientDetailField = value; 
     } 
    } 

    /// <remarks/> 
    public TransactionDetail TransactionDetail { 
     get { 
      return this.transactionDetailField; 
     } 
     set { 
      this.transactionDetailField = value; 
     } 
    } 

    /// <remarks/> 
    public VersionId Version { 
     get { 
      return this.versionField; 
     } 
     set { 
      this.versionField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlElementAttribute("SelectionDetails")] 
    public TrackSelectionDetail[] SelectionDetails { 
     get { 
      return this.selectionDetailsField; 
     } 
     set { 
      this.selectionDetailsField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger")] 
    public string TransactionTimeOutValueInMilliseconds { 
     get { 
      return this.transactionTimeOutValueInMillisecondsField; 
     } 
     set { 
      this.transactionTimeOutValueInMillisecondsField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlElementAttribute("ProcessingOptions")] 
    public TrackRequestProcessingOptionType[] ProcessingOptions { 
     get { 
      return this.processingOptionsField; 
     } 
     set { 
      this.processingOptionsField = value; 
     } 
    } 
} 
+0

Пожалуйста, укажите пример кода, который выполняет удаление. – Soviut

+0

@Soviut - Я вручную удаляю элементы (элементы), поскольку не хочу видеть эти данные в Консоли, но я получаю ошибку XML выше в любое время, когда я удаляю. См. Править. –

+0

Почему downvote? Вы прокомментируете, чтобы сообщить мне, что с моей проблемой? является? –

ответ

0

Если этот вопрос действительно о FedEx разработчиков API, то я собираюсь сделать предположение о том, что ваш public enum TDOTT на самом деле (вытягивая это прямо из документации API FedEx)

public enum TrackingDateOrTimestampType { 

    /// <remarks/> 
    ACTUAL_DELIVERY,   
    /// <remarks/> 
    ACTUAL_PICKUP, 
    /// <remarks/> 
    ACTUAL_TENDER, 
    /// <remarks/> 
    ANTICIPATED_TENDER, 
    /// <remarks/> 
    APPOINTMENT_DELIVERY, 
    /// <remarks/> 
    ESTIMATED_DELIVERY, 
    /// <remarks/> 
    ESTIMATED_PICKUP, 
    /// <remarks/> 
    SHIP, 
} 

Теперь на том же предположении, Основе ваш код отвечал вы хотите исключить SP, который, как представляется, является эквивалентом SHIP

Уходя вышеуказанные предположения, если бы вы выложили синтаксис, который приходит после линии метания ошибка, это будет выглядеть как ниже (я говорю что-то из-за того, что я изменил мое, чтобы удовлетворить свои потребности, но это будет получить через общую идею)

static void Main(string[] args) 
{ 
    //Pulled this from the example you gave 
    List<string> tempList = new List<string> { "666288603319" }; 
     foreach (var trackingNumber in tempList) 
     { 
      TrackRequest request = CreateTrackRequest(trackingNumber); 
      TrackService service = new TrackService(); 
      TrackReply reply = service.track(request); 

      //Now here is where my syntax is set-up that should closely mirror what the FedEx API shows straight from the .zip 
      if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) 
       foreach (CompletedTrackDetail completedTrackDetail in reply.CompletedTrackDetails) 
        foreach (TrackDetail trackDetail in completedTrackDetail.TrackDetails) 
         if (trackDetail.DatesOrTimes != null) 
         { 
          foreach (TrackingDateOrTimestamp timestamp in trackDetail.DatesOrTimes) 
           //if my assumption is accurate and you want to exclude ship add this 
           if (Convert.ToString(timestamp.Type) != "SHIP") 
            Console.WriteLine("{0}: {1}", timestamp.Type, timestamp.DateOrTimestamp); 
         } 

Теперь посмотрим на комментарии, которые Я добавил, вместо того, чтобы пытаться изменить public enum, которые могут быть привязаны к размножению мест внутри синтаксис, который бы все должен быть изменен, что выше вашим опыта кодирования, я бы рекомендовал изменить его, как я показываю выше просто «фильтрация» на основе от timestamp.Type

Для дальнейшего использования, если вы хотите получить действительные/полезные ответы, вам нужно включить точный синтаксис. Вполне возможно изменить синтаксис, если это чувствительная или личная информация (например, предоставление XXX для номера отслеживания), но изменение public enum, когда исходный код FedEx API свободно загружаемый, был просто глупым. Я редко просматриваю эти форумы, но с недавнего времени я был готов побрить себе голову после изучения FedEx API - я думал, что буду перекликаться с этим.

Если какое-либо из моих допущений неверно, пожалуйста, измените свой исходный пост кодом ACCORTATE из API FedEx, и я смогу помочь (и, как я уверен, многие другие).

Смежные вопросы