Как вы используете WCFFacility Windsor-Castle со службами REST WCF 4.0?
Как вы делаете ссылку на фабрику, когда у вас больше нет файла .svc?
ТИА
Сорен
Как вы используете WCFFacility Windsor-Castle со службами REST WCF 4.0?
Как вы делаете ссылку на фабрику, когда у вас больше нет файла .svc?
ТИА
Сорен
Используя Windsor 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));
}
}
Теперь у вас есть возможность подключить эту службу к контейнеру Windsor следующим образом (и, поскольку это консольное приложение, я просто покажу вам основной метод):
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, размещенная Castle Windsor.
Указав в браузере на: «http://localhost/frobs», вы получите все frobs, а указав в браузере, скажем, на «http://localhost/frobs/Doob», вы получите frob с именем Doob, вы получите идея...