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