هل يمكنك فرض تسلسل قيمة التعداد إلى عدد صحيح؟[ينسخ]

StackOverflow https://stackoverflow.com/questions/117348

سؤال

التكرار المحتمل:
كيف يمكنني إجراء تسلسل لقيمة التعداد باعتبارها int؟

أهلاً بكم!

أتساءل عما إذا كانت هناك طريقة لفرض تسلسل قيمة التعداد في قيمتها الصحيحة، بدلاً من تمثيل السلسلة.

لوضعك في السياق:نحن نستخدم، في تطبيق ويب يعتمد بشكل كبير على خدمات الويب، فئة أساسية واحدة لجميع رؤوس الطلبات لدينا، بغض النظر عن نوع الطلب.

أريد إضافة حقل نتيجة إلى الرأس، لذلك سيكون لدينا مكان لتمرير التلميحات مرة أخرى إلى تطبيق الاتصال فيما يتعلق بكيفية سير العملية على جانب خدمة الويب.لقد تم بالفعل الإعلان عن التعداد لهذا الغرض، ولكن بما أن لدينا تطبيقات قديمة تستدعي خدمات الويب تلك التي قد لا تعرف شيئًا عن هذه التعدادات، فأنا أرغب في إرسال تسلسل هذه القيم كأعداد صحيحة.

لقد اضطررنا بالفعل إلى تقليل طول تلك الرؤوس باستخدام [XmlElement(ElementName = "stringpresentationOfAttributeName")] لأننا تجاوزنا أحيانًا الحد الأقصى لطول عنوان URL لـ IE، وتساءلت عما إذا كانت هناك سمات مماثلة لفرض تسلسل تعداد القيم إلى أعداد صحيحة.

هل سمع أحد من قبل عن مثل هذه السمة؟

كما كان دائمًا ، شكرًا على المساعدة ، باسكال

هل كانت مفيدة؟

المحلول

تقوم التعدادات بإجراء تسلسل إلى ints.لكن بشكل عام، إذا لم تعجبك الطريقة التي يتم بها إجراء تسلسل لإحدى خصائصك إلى XML، فيمكنك القيام بذلك:

[XmlIgnore]
public MyThing MyThing { get; set; }

[XmlElement("MyThing")]
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
public string MyThingForSerialization
{
    get { return //convert MyThing to string; }
    set { MyThing = //convert string to MyThing; }
}

نصائح أخرى

لا يتم إجراء تسلسل للتعدادات كـ int كإعداد افتراضي.أنا أستخدم XMLSerializer لإجراء تسلسل لفصل دراسي ولدي نفس المشكلة كما هو موضح.

(يبدو أن مثال Matt Howells يعمل إذا قمت بتغيير نطاق MyThingForSerialization إلى عام ولكني أرغب في رؤية تنفيذ أفضل لأن هذا يؤدي إلى إنشاء ملكية عامة إضافية واحدة)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top