У меня был другой случай, когда это произошло, когда мой Toolbar
был стилизован в styles.xml. Это выглядело так:
<style name="AppActionBar" parent="Widget.AppCompat.ActionBar">
<item name="android:background">@color/ng_blue</item>
<item name="theme">@style/ThemeOverlay.AppActionBar</item>
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>
Измените name="theme"
на name="android:theme"
и устранили проблему.
Пользование библиотекой Common должно быть прекрасным. Перечисления являются сериализуемыми, и атрибуты DataContract не нужны.
См.: http://msdn.microsoft.com/en-us/library/ms731923.aspx
Перечисляемые типы. Перечисления, включая перечисления флага, являются сериализуемыми. Дополнительно, перечисляемые типы могут быть отмечены с атрибутом DataContractAttribute, в этом случае каждый участник, который участвует в сериализации, должен быть отмечен с атрибутом EnumMemberAttribute
РЕДАКТИРОВАНИЕ: Несмотря на это, не должно быть никакой проблемы с маркировкой перечисления как DataContract и наличие клиентских библиотек с помощью него.
У меня возникла довольно странная проблема, и я подумал, что она может быть вам интересна. У меня также были проблемы с тем, что я получал остановку соединения, когда я использовал перечисления в своем контракте данных. Мне потребовалось довольно много времени, чтобы выяснить, в чем была настоящая проблема: Я использовал перечисления с присвоенными значениями int. Они начинались с 1 вместо 0. Очевидно, что WCF требует, чтобы для сериализации было значение enum, равное 0. Если вы не укажете никаких значений в вашем перечислении, автоматическое отображение значения int будет сделано для вас, начиная с 0, так что все в порядке. Но когда вы скопируете другое определение перечисления, где значение 0 не назначено, вы не получите его для вашего клиента через WCF - странно, но факт!
У меня, должно быть, были некоторые проблемы с устаревшей сервисной ссылкой или чем-то. Я возвратился и создал общую библиотеку, содержащую перечисление, и все хорошо работает. Я просто добавил ссылку использования на сервисный файл интерфейса.
using Common;
[ServiceContract]
[ServiceKnownType(typeof(MyEnum))]
public interface IMyService
{
[OperationContract]
ServiceMethod1( MyEnum e, string sUserId, string sSomeData);
}
и я отбросил следующее:
[DataContract]
public enum MyEnum{ [EnumMember] red, [EnumMember] green, [EnumMember] blue };
я предполагаю, так как на перечисление ссылаются через ServiceKnownType, оно не должно было быть повышено во внешней библиотеке с [DataContract] или [Перечислитель]
Вы могли присвоить международные значения своим Перечислимым участникам и просто использовать интервал для передачи и когда необходимый бросок их назад в Ваш Перечислимый тип