This repository was archived by the owner on Apr 20, 2018. It is now read-only.
forked from microsoft/Tx
-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathProgram.cs
More file actions
99 lines (83 loc) · 3.29 KB
/
Program.cs
File metadata and controls
99 lines (83 loc) · 3.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
namespace WCFHost
{
using System;
using System.ServiceModel;
using System.ServiceModel.Description;
[ServiceContract(Namespace = "http://WCFHost/")]
public interface ICalculator
{
[OperationContract]
double Add(double number1, double number2);
[OperationContract]
double Subtract(double number1, double number2);
[OperationContract]
double Multiply(double number1, double number2);
[OperationContract]
float Divide(int number1, int number2);
[OperationContract]
double PowerOf(double number1, double number2);
}
class Calculator : ICalculator
{
public double Add(double number1, double number2)
{
var result = number1 + number2;
Console.WriteLine("Add({0},{1})", number1, number2);
Console.WriteLine("Result: {0}", result);
return result;
}
public double Subtract(double number1, double number2)
{
var result = number1 - number2;
Console.WriteLine("Subtract({0},{1})", number1, number2);
Console.WriteLine("Result: {0}", result);
return result;
}
public double Multiply(double number1, double number2)
{
throw new NotImplementedException("Multiplication operation not implemented!");
}
public float Divide(int number1, int number2)
{
var result = number1 / number2;
Console.WriteLine("Divide({0},{1})", number1, number2);
Console.WriteLine("Answer: {0}", result);
return result;
}
public double PowerOf(double number1, double number2)
{
var result = Math.Pow(number1, number2);
Console.WriteLine("PowerOf({0},{1})", number1, number2);
Console.WriteLine("Answer: {0}", result);
return result;
}
}
class Program
{
static void Main(string[] args)
{
var baseAddress = new Uri("http://localhost:8080/Calculator");
using (var host = new ServiceHost(typeof(Calculator), baseAddress))
{
host.AddServiceEndpoint(typeof(ICalculator), new BasicHttpBinding(), "Calculator");
var serviceMetadataBehavior = new ServiceMetadataBehavior
{
HttpGetEnabled = true,
MetadataExporter =
{
PolicyVersion =
PolicyVersion
.Policy15
}
};
host.Description.Behaviors.Add(serviceMetadataBehavior);
host.Open();
Console.WriteLine("The host is ready at: {0}", baseAddress);
Console.WriteLine("Press <Enter> to stop the host");
Console.ReadKey();
host.Close();
}
}
}
}