для асинхронности необходимо добавить событие GetDataCompleted и метод.
service1Client.GetDataCompleted += service1Client_GetDataCompleted;
public void service1Client_GetDataCompleted(object sender, wsService1.GetDataCompletedEventArgs e)
{
string Data = e.Result.ToString();
}
Спасибо j,
Я нашел лучшее динамическое решение возможным. Как правило, мне никогда не нравится кодировать полные пути в любую часть программного обеспечения. Файл свойств или нет.
Таким образом, вот то, как это сделано:
def basePath = grailsAttributes.getApplicationContext().getResource("/files/").getFile().toString()
grailsAttributes доступен в любом контроллере.
getResource (некоторый относительный dir) будет искать что-либо в папке веб-приложения.
Так, например, в моей dev системе это будет toString к "C:\WORKSPACEFOLDER\PROJECTFOLDER\web-app\ с относительным dir concated в конец
как так в моем примере выше C:\WORKSPACEFOLDER\PROJECTFOLDER\web-app\files
Я попробовал его в, БЫЛ 6.1, и это не работало в контейнере никакие проблемы. У Вас есть к toString он, или это попытается возвратить объект.
mugafuga
Grails, когда это выполняется в dev режиме, обеспечивает большое количество свойств среды к ее сценариям Gant и приложению в свою очередь, включая basedir.
Смотрите на grails.bat или grails.sh сценарий, и Вы найдете эти строки:
Unix: -Dbase.dir="." \
Windows: set JAVA_OPTS=%JAVA_OPTS% -Dbase.dir="."
Когда эти сценарии запускают Вашу среду в dev режиме, Вы добавили их бесплатно.
Когда Вы берете ВОЙНУ и развертываете Вас, больше не используют эти сценарии, и поэтому необходимо решить проблему иначе; Вы можете также