0
に出力するSwitch..Caseに値を変換する手助けが必要と私はは、私はイベントコードのためのスイッチ..caseを作成したXML
ここでイベントステータスのためのXElementにイベントコードを変換するかどうかはわかりません
rspxml.Root.Add(
new XElement("API", "4.0"),
new XElement("PackageTrackingInfo",
new XElement("TrackingNumber", prc.ProNumber)
),
new XElement("TrackingEventHistory",
prc.History.Cast<Saia.Data.General.Shipment.HistoryItem>().Select(item =>
new XElement("TrackingEventDetail",
new XElement("EventStatus", prc.History,
new XElement("EventReason", prc.History),
new XElement("EventDateTime", prc.History)
が、それはこのようなものになるだろう:
EVENTCODEクラスここpublic class EventCode
{
public enum EvCodes {Delivered, DispatchedForDelivery,
DepartedFromTerminal, ArrivedAtDestinationTerminal};
public static void Main()
{
string val = "Dispatched For Delivery";
switch ((EvCodes)Enum.Parse(typeof(EvCodes), val.Replace(" ", "")))
{
case EvCodes.DispatchedForDelivery:
case EvCodes.Delivered:
Console.WriteLine("OD");
break;
case EvCodes.DepartedFromTerminal:
Console.WriteLine("L1");
break;
}
}
EventStatusですが、私は変換するか、または値を読み取るしようとしている何をされていますあなたがあなたをXMLするためにこれを書きたいとき
public static string ToXml(this EventCode.EvCodes value)
{
switch(value)
{
case EvCodes.DispatchedForDelivery:
case EvCodes.Delivered:
return "OD";
case EvCodes.DepartedFromTerminal:
return "L1";
}
}
:あなたは、のようなものを入力としてEvCodes値を受け入れ、あなたはXElementオブジェクトに追加したい文字列を返す拡張メソッドを作成することができ
new XElement("EventStatus", EventCode.EvCodes.Delivered
この上のいくつかのエラーを取得:\t 1.'Extensionメソッドはトップレベル静的クラスで定義する必要がありますが、 EvMapperはネストされたクラスです\t 2. 'EvCodes'という名前は現在のコンテキストに存在しません – user2091766
コンパイラは間違っていません 拡張メソッドは推奨です。使用したい場合は、別の静的クラスに移動する場合は、値のパラメータから 'this'キーワードを削除して、ToXmlメソッドを呼び出し元のクラスと同じクラスに配置することができます EvMapperが何であるか分かりませんあなたのサンプルコードで – lowds