SoapExtension

Clarion.NET & .NET технологии

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 4:43

SoapExtension

Сообщение BOB » 08 Ноябрь 2016, 7:46

Нужно сделать расширение для веб сервиса SoapExtension .

Ну типа копи я делать умею , но исходники в С# , как перевести на кларион ?
public class TraceExtension : SoapExtension
{
Stream oldStream;
Stream newStream;
string filename;

// Save the Stream representing the SOAP request or SOAP response into
// a local memory buffer.
public override Stream ChainStream(Stream stream)
{
oldStream = stream;
newStream = new MemoryStream();
return newStream;
}

// When the SOAP extension is accessed for the first time, the XML Web
// service method it is applied to is accessed to store the file
// name passed in, using the corresponding SoapExtensionAttribute.
public override object GetInitializer(LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute)
{
return ((TraceExtensionAttribute)attribute).Filename;
}

// The SOAP extension was configured to run using a configuration file
// instead of an attribute applied to a specific Web service
// method.
public override object GetInitializer(Type WebServiceType)
{
// Return a file name to log the trace information to, based on the
// type.
return "e:\\" + WebServiceType.FullName + ".log";
}

// Receive the file name stored by GetInitializer and store it in a
// member variable for this specific instance.
public override void Initialize(object initializer)
{
filename = (string)initializer;
}
.....................
Может Дед подскажет ?

PavelNK
Старожил
Сообщения: 226
Зарегистрирован: 15 Март 2011, 8:02

SoapExtension

Сообщение PavelNK » 08 Ноябрь 2016, 8:15

Напрямую никак! Дело в том, что в С# есть куча разных библиотек, в т.ч. DotNet. За несколькими строчками кода приведенного здесь стоят десятки-сотни метров кода библиотек. В Кларионе ничего подобного нет, т.к. писатели Клариона считают, что все то, чего нет в нем можно написать используя WinAPI. Поэтому, то что программисты на других языках делают за час мы делаем неделями, самостоятельно изобретая эти самые библиотеки. Можно взять исходники используемой библиотеки, если есть, раскрутить и все переписать на Клашу.

BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 4:43

SoapExtension

Сообщение BOB » 08 Ноябрь 2016, 8:34

Я же о нете и пишу , пока не сталкивался с тем что кларион.нет не может , сталкивался с тем что синтаксиса не знаю . Кстати веб сервис кларион пишет на ура и даже вин формы подключает , а в c# в вебсервисе я даже не могу написать messagebox.show() .

Аватара пользователя
Admin
Администратор
Сообщения: 3476
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

SoapExtension

Сообщение Admin » 08 Ноябрь 2016, 10:34

PavelNK писал(а):то что программисты на других языках делают за час мы делаем неделями
Для того что бы программисты на "других языках" делали что то за час - в Microsoft сидят сотни программистов.
А может и больше чем сотни.
Годами сидят и пишут. И деньги получают не с продаж C#
Ну а дальше думаю все понятно...

P.S. Сорри за оффтопик.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 4:43

SoapExtension

Сообщение BOB » 08 Ноябрь 2016, 11:11

Первая часть вроде поддается , а вот класс атрибут ни как .
[AttributeUsage(AttributeTargets.Method)]
public class TraceExtensionAttribute : SoapExtensionAttribute
{

private string filename = "e:\\111111.xml";
private int priority;

public override Type ExtensionType
{
get { return typeof(TraceExtension); }
}

public override int Priority
{
get { return priority; }
set { priority = value; }
}

public string Filename
{
get
{
return filename;
}
set
{
filename = value;
}
}
}
Может кто знает ?

PavelNK
Старожил
Сообщения: 226
Зарегистрирован: 15 Март 2011, 8:02

SoapExtension

Сообщение PavelNK » 08 Ноябрь 2016, 12:08

Admin писал(а):
PavelNK писал(а):то что программисты на других языках делают за час мы делаем неделями
Для того что бы программисты на "других языках" делали что то за час - в Microsoft сидят сотни программистов.
А может и больше чем сотни.
Годами сидят и пишут. И деньги получают не с продаж C#
Ну а дальше думаю все понятно...

P.S. Сорри за оффтопик.
Так и я об этом, а мы вместо программистов Microsoft сидим и изобретаем велосипед

Rimas
Ветеран
Сообщения: 471
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

SoapExtension

Сообщение Rimas » 19 Ноябрь 2016, 9:27

а если оставить как есть на C# и просто заюзать из Clarion#?

BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 4:43

SoapExtension

Сообщение BOB » 19 Ноябрь 2016, 10:17

а если оставить как есть на C# и просто заюзать из Clarion#?
Ну да , такой вариант пошел сразу , но я все-таки раскопал как это писать на Clarion# , override это derived и компилировать надо any processor , вылетает ошибка No procedures in the loaded list длл не создается в bin , а в obj создается и нормально работает .

Ответить