Я использую программное обеспечение Laserfiche. У этого есть сервер рабочего процесса и SDK, который позволяет вам использовать свои собственные действия. При создании пользовательской активности существует требование. Он должен быть сериализован. Итак, я поместил свойство [Serializable] на все классы. Проблема заключается в том, что я использую класс System.Drawing.Printing.PrintDocument. я получаю:Serializable issue on PrintDocument class
02/09/2013 13:07:12 v9SignoffAuthentication Тип 'System.Drawing.Printing.PrintDocument' в System.Drawing Ассамблеи», Version = 4.0.0.0, культура = нейтральной, PublicKeyToken = b03f5f7f11d50a3a '- , не помеченный как сериализуемый.
Я немного искал Google и обнаружил, что PrintDocument не может быть сериализована. добавить свойство
[NonSerialized]
PrintDocument pd;
И бег пользовательских активности, но не полностью. Я получаю исключение на
pd.Print();
Это внутри метода коррекции
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
Ошибка
System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. на WFPrintCustomActivity.WFPrintCustomActivity.Execute (ActivityExecutionContext ExecutionContext) || 02/09/2013 13:15:38
Если я пометить объект как NonSerialized, я не могу назвать один из этих методов позже?
Любые идеи?
Благодаря
Gianfranco
Это должно быть немного очевидно, помечая поле [NonSerialized], оно будет иметь значение по умолчанию для десериализованного объекта. Который является нулевым. Вам нужно будет придать ему значение. –