Kod Panosu

Kopyala, Yapıştır, Hatırla, Kodla..

Bir Web Servis’i C# Class Library’si (DLL) İle Consume Etmek

Örnek olarak http://ws.cdyne.com/emailverify/Emailvernotestemail.asmx?wsdl adresindeki servisi C#’da yazdığınız bir DLL vasıtasıyla ve nihâi olarak VBScript ortamında consume etmek istediğinizi varsayalım.

DLL’in oluşturulması
1- Visual Studio’yu açın ve File > New > Project.. > Visual C# yolundan bir Class Library projesi oluşturun.
2- Yukarıda verilen adresten servis referansınızı ekleyin.
3- “C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin” yolundaki guidgen.exe’yi çalıştırın ve bir GUID üretin. (Ör: E38E0011-D037-4e7b-AB0E-BDB725A9D2F4)
4- Class’ınızı aşağıdakine benzer bir hâle getirin.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.ServiceModel;
using ServiceLib.ServiceReference1;

namespace ServiceLib
{
    [ComVisible(true)]
    [ProgId("ServiceUser")]
    [Guid("E38E0011-D037-4e7b-AB0E-BDB725A9D2F4")]
    public class ServiceUser
    {
        public string test(string email)
        {
            AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", this.GetType().Assembly.Location+".config");

            EmailVerNoTestEmailSoapChannel proxy = new ChannelFactory("EmailVerNoTestEmailSoap12").CreateChannel();

            ReturnIndicator res;

            res = proxy.VerifyEmail(email, "");

            return res.GoodEmail.ToString();
        }
    }
}

5- Proje özellikleri ekranında Signing’in altında Sign the assembly kutucuğunu işaretleyin, yeni bir imza üretin ve ayarları kaydedin.
6- Projeyi build edin.

DLL’in Sisteme COM Objesi Olarak Register Edilmesi
7- Console’dan C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe /codebase “C:\projenize\giden\yol\ServiceLib.dll” komutunu çalıştırın.

DLL’in VBScript Ortamında Kullanılması

dim myObj
set myObj = CreateObject("ServiceUser")
MsgBox myObj.test("q@q.com")

şeklinde bir .vbs dosyası oluşturun ve dosyayı çalıştırın.

Kaynakça
http://bytes.com/topic/c-sharp/answers/829749-change-default-config-file-name
http://www.dirkstrauss.com/programming/calling-a-net-dll-from-vbscript

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: