Question

l - This My Interface Class For WCFSeviceLibrary

In This interface class IService1 in declare OperationContract as one ObjectClass Type Method.

And Create this ObjectClass Class For Set Type. as Ganeric.

    public interface IService1
        {               
             [OperationContract]
             ObjectClass SetDataUsingDataContract(ObjectClass data); 
        }
    [DataContract]
        public class ObjectClass
        {
            string name;
            string address;
            string emailid;
            double contactno;
            [DataMember]
            public string Name
            {
                set { name = value; }
                get { return name; }
            }

            [DataMember]
            public string Address
            {
                set { address = value; }
                get { return address; }
            }

            [DataMember]
            public string EmailId
            {
                set { emailid = value; }
                get { return emailid; }
            }

            [DataMember]
            public double ContactNO
            {
                set { contactno = value; }
                get { return contactno; }
            }

        }

Service.cs File In This Class Implimate

public class Service1 : IService1
    {
 public ObjectClass SetDataUsingDataContract(ObjectClass data)
        {

            SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Pavan\WCF_Practice\WcfServiceSample\WebApplicationvc\App_Data\WCFDB.mdf;Integrated Security=True;User Instance=True");
            conn.Open();
            SqlCommand cmd = new SqlCommand("INSERT INTO WCFTBL (Name, Address, ContactNo, EmailID) VALUES ('"+data.Name+"','"+data.Address+"','"+data.ContactNO+"','"+data.EmailId+"')",conn);
            cmd.ExecuteNonQuery();
            conn.Close();
            return data;
        }
}

This My Btn_Click Class of WebApplication Page

 protected void Add_Click(object sender, EventArgs e)
        {
            ServiceReference1.Service1Client srv = new ServiceReference1.Service1Client();


            srv.SetDataUsingDataContract();

}

I Dont Know How To Set Argument Of srv.SetDataUsingDataContract() method.

AppConfig File

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <!-- When deploying the service library project, the content of the config file must be added to the host's 
  app.config file. System.Configuration does not support config files for libraries. -->
  <system.serviceModel>
    <services>
      <service name="WcfServiceLibraryforADD.Service1" behaviorConfiguration="WcfServiceLibraryforADD.Service1Behavior">
        <host>
          <baseAddresses>
            <add baseAddress = "http://localhost:8731/Design_Time_Addresses/WcfServiceLibraryforADD/Service1/" />
          </baseAddresses>
        </host>
        <!-- Service Endpoints -->
        <!-- Unless fully qualified, address is relative to base address supplied above -->
        <endpoint address ="" binding="wsHttpBinding" contract="WcfServiceLibraryforADD.IService1">
          <!-- 
              Upon deployment, the following identity element should be removed or replaced to reflect the 
              identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
              automatically.
          -->
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <!-- Metadata Endpoints -->
        <!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
        <!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="WcfServiceLibraryforADD.Service1Behavior">
          <!-- To avoid disclosing metadata information, 
          set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="True"/>
          <!-- To receive exception details in faults for debugging purposes, 
          set the value below to true.  Set to false before deployment 
          to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>
Was it helpful?

Solution

Create an ObjectClass instance and pass it as an argument to SetDataUsingDataContract. For example:

protected void Add_Click(object sender, EventArgs e)
{
     ServiceReference1.Service1Client srv = new ServiceReference1.Service1Client();

     ObjectClass objectClass = new ObjectClass();
     // Set properties 
     srv.SetDataUsingDataContract(objectClass);
}

The client generation code should have created an ObjectClass class for the caller to reference.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top