1
如何使用WCF 4.0 REST服務使用Windsor-Castle WCFFacility?WCFFacility和WVF 4.0 REST
如何在沒有.svc文件的情況下建立到工廠的鏈接?
TIA
瑟倫
如何使用WCF 4.0 REST服務使用Windsor-Castle WCFFacility?WCFFacility和WVF 4.0 REST
如何在沒有.svc文件的情況下建立到工廠的鏈接?
TIA
瑟倫
使用溫莎3.0這是非常簡單的(如果我理解正確你的問題,我道歉,如果我失去了一些東西)。
做給你看的最簡單的事情就是創建一個控制檯應用程序,並確保您引用:
現在這樣定義一個RESTful服務:
[DataContract]
public class Frob
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Fribble { get; set; }
}
[ServiceContract]
public interface IFrobService
{
[OperationContract]
[WebGet(UriTemplate = "/")]
IEnumerable<Frob> GetAllFrobs();
[OperationContract]
[WebGet(UriTemplate = "/{name}")]
Frob GetFrobByName(string name);
}
public class FrobService : IFrobService
{
private readonly List<Frob> _frobs
= new List<Frob>
{
new Frob {Name = "Foob", Fribble = "Soop"},
new Frob {Name = "Hoob", Fribble = "Soop"},
new Frob {Name = "Doob", Fribble = "Noop"}
};
public IEnumerable<Frob> GetAllFrobs()
{
return _frobs;
}
public Frob GetFrobByName(string name)
{
return _frobs
.FirstOrDefault(f =>
f.Name.Equals(name,
StringComparison.OrdinalIgnoreCase));
}
}
現在你有,你可以連接該服務到溫莎容器像這樣(並且由於它是一個控制檯應用程序,我只是告訴你主要方法):
public static class Program
{
static void Main()
{
var container = new WindsorContainer();
container
.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero)
.Register(Component.For<IFrobService>()
.ImplementedBy<FrobService>()
.AsWcfService(new RestServiceModel("http://localhost/frobs")));
Console.ReadKey();
}
}
而這是一個由溫莎城堡主辦的WCF REST服務。
在瀏覽器上指向:「HTTP://本地主機/ frobs」將讓你所有的frobs和,比如說指着一個瀏覽器,「HTTP://本地主機/ frobs /杜布」將讓你叫杜布的FROB ,你有想法...
我可以問,我回答你的問題(下)嗎?如果我這樣做,你能否將它標記爲接受的答案? (這是答案旁邊的勾號) – kmp 2012-03-12 17:34:01