Любое сопоставление типов с разными типами идентификаторов - PullRequest
0 голосов
/ 23 июля 2010

Я работаю над приложением по планированию событий для контактов в телефонной книге. Избегая всех вещей public virtual и protected, мой класс Contact выглядит следующим образом:

class Contact {
    //...
    Int32 Id { get; private set; } //primary key;
    String Name { get; private set; } 
    //...
}

Клиент попросил меня обработать как его собственную телефонную книгу, так и одну из моих приложений. Поэтому я подумал извлечь интерфейс IContact из Contact и добавить еще один класс InternalContact (я знаю, что это отстой), реализуя тот же интерфейс. Проблема в том, что база данных клиента использует назначенную строку в качестве первичного ключа, поэтому тип идентификатора Contact и тип идентификатора InternalContact будут отличаться. Можно ли отобразить свойство Invitation.Contact, используя сопоставление типов <any>, даже если типы Id отличаются?

Заранее спасибо, Джулио

1 Ответ

0 голосов
/ 23 июля 2010

Не уверен, что это то, о чем вы спрашиваете, но вы можете сделать что-то вроде этого для создания классов:

interface IContact<T>
{
    T Id { get; }
}

public class Contact : IContact<int>
{
    public int Id { get; private set; }
}

public class InternalContact : IContact<string>
{
    public string Id { get; private set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...