2010-05-04 3 views
1

Si vous jetez un oeil à http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/activedirectoryoperations11132009113015AM/activedirectoryoperations.aspx, il y a une énorme liste de propriétés pour AD dans une classe.Refactoring d'une grande liste de propriétés/champs C#

Quelle est une bonne manière de refactoriser une telle grande liste de champs (connexes)? Est-ce que les classes séparées seraient adéquates ou existe-t-il une meilleure façon de rendre cela plus gérable?

Merci

Répondre

1

Le premier lot que je voudrais extraire sont les huit qui commencent par "MSEXCH" - ce préfixe indique que l'auteur a estimé qu'il y avait quelque chose de commun à propos de ces propriétés. Au-delà de cela, je ne vois pas grand chose qui tombe naturellement dans des groupes faciles, mais si vous trouvez que certaines propriétés sont toujours utilisées ensemble, les mettre dans la même classe serait probablement une bonne idée.

0

Si vous parlez en les divisant en groupes logiques, puis les classes fonctionnerait très bien pour cela, et il pourrait les rendre plus faciles à naviguer. Je suis sûr qu'il y a une raison pour laquelle les propriétés dans AD ne sont pas regroupées de cette façon, mais j'essaie toujours de regrouper les choses quand j'ai tellement de propriétés que je dois commencer un défilement sérieux.

1

S'ils sont liés, ils doivent appartenir ensemble ...

Si vous pensez que vous pouvez les regrouper d'autres (à savoir l'adresse, les numéros de téléphone), vous pouvez créer des classes simples pour ceux-ci.

0

si le problème est avec le code source étant trop long, vous pouvez vos propriétés automatiques

public string Department { get; private set; } 
    public string FirstName { get; private set; } 
    public string MiddleName { get; private set; } 
    public string LastName { get; private set; } 
    public string LoginName { get; private set; } 
    public string LoginNameWithDomain { get; private set; } 
    public string StreetAddress { get; private set; } 
    public string City { get; private set; } 
    public string State { get; private set; } 
    public string PostalCode { get; private set; } 
    public string Country { get; private set; } 
    public string HomePhone { get; private set; } 
    public string Extension { get; private set; } 
    public string Mobile { get; private set; } 
    public string Fax { get; private set; } 
    public string EmailAddress { get; private set; } 
    public string Title { get; private set; } 
    public string Company { get; private set; }