Я пытаюсь выяснить что-то с кодом C#, и я не уверен на 100%, если это возможно, но я пытаюсь реализовать функции поиска для нескольких классов, которые упрощены и в целом легко развиваются. Сейчас у меня есть следующий код:Сильно типизированная функция поиска для класса?
[DataContract(IsReference = true), Serializable]
public class ClassSearch
{
[DataMember]
public string Name { get; set; }
[DataMember]
public object Value { get; set; }
public override string ToString()
{
return String.Format("{0} = {1}", Name, Value);
}
... // additional logic
}
Однако, я хотел бы включить строгую типизацию для значения объекта так, чтобы она только может быть установлена на имущество, которое передается, я думаю, как и аналогичные (гипотетический, не уверен, если это будет работать)
[DataContract(IsReference = true), Serializable]
public class ClassSearch<TProperty>
{
[DataMember]
public TProperty Property {get; set; }
public override string ToString()
{
return String.Format("{0} = '{1}'", Property.Name, Property);
}
... // additional logic
}
public class MainClass
{
public void Execute()
{
SomeClass someClass = new Class{
Property = "Value";
};
ClassSearch search = new ClassSearch<SomeClass.Property>{
Property = someClass.Property
};
var retString = search.ToString(); // Returns "Property = 'Value'"
}
}
В зависимости от того, как вы планируете выставлять свою конечную точку wcf, у вас могут возникнуть проблемы с генериками, в случае, если базовыйHttpBinding не сможет обслуживать ClassSearch, а ClassSearch определяется в той же службе. –
Я не понимаю, чего вы хотите получить. Вспомогательный класс, который может искать имена свойств и их значения любого класса и может их распечатать? Вы можете использовать отражение. Абстрактный класс или интерфейс 'ISearchable', который делает класс доступным для поиска? – vulkanino
Извините, игнорируйте теги wcf. –