У меня возникла конкретная проблема десериализации объекта в проекте Flex 4.5 Mobile.Я подключился к штрафу Webservice и заполнил штраф ListBox.Я могу выбрать элемент и получить детализацию также хорошо, но после сериализации объекта и попытки десериализации его;определение объекта где-то теряется.
У меня есть переменная, когда пользователь выбирает запрос в списке
private var selectedReq:ServiceRequest;
//Here we instantiate the local variable when user select id in ListBox
selectedReq = event.currentTarget.selectedItem as ServiceRequest;
Каждый запрос на обслуживание, выбранный пользователем для сохранения, вызывает этот метод.
private function writeServiceRequest():void {
var filename:String = buildFileName();
var file:File = File.applicationStorageDirectory.resolvePath(filename);
if (file.exists)
file.deleteFile();
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
//selectedReq is the private var of the users selected item
fileStream.writeObject(selectedReq);
fileStream.close();
}
Когда пользователи хотят просмотреть запрос, вызывается этот метод.
private function readServiceRequest():ServiceRequest {
var filename:String = buildFileName();
var file:File = File.applicationStorageDirectory.resolvePath(filename);
if (!file.exists) {
return null;
}
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var objReq:ServiceRequest = fileStream.readObject() as ServiceRequest;
fileStream.close();
return objReq;
}
Объект класса похож на.
public var id:uint;
public var requisitioner:String;
public var requestItems:ArrayCollection //Webservice it's actually List<requestItems>
public var requestProcesses:ArrayCollection // WSDL it's actually List<>
Когда я пытаюсьчитать / десериализовать как
//This line is null but the file exist and the object was written
var objReq:ServiceRequest = readServiceRequest() as ServiceRequest;
if(objReq) {
selectedReq = objReq;
}
Если я не приведу readServiceRequest () как ServiceRequest и просто верну Object;Я могу перебирать Object и получать правильные значения, возвращаемые из сериализованного объекта.
Я могу только предположить, что это может быть вызвано классами, созданными Flex с помощью веб-службы?Если записываются значения, а не тип объекта, то что-то должно быть потеряно в сериализации - правильно?
Извините за все детали, но я немного растерялся в это время ..... любая помощь будет оценена.
RL