2010-05-09 2 views
1

Je voudrais savoir comment puis-je embedd un fichier source de code (si possible), quelque chose comme ça:Inclure le fichier de code dans C#? Créer une bibliothèque pour les autres?

class X 
{ 
include "ClassXsource" 
} 

Ma deuxième question - Puis-je construire DLL ou quelque chose comme ça pour mes collègues à utiliser? J'ai besoin d'eux pour pouvoir appeler des méthodes de ma "partie" mais ne pas modifier ou voir leur contenu. Fondamentalement, il suffit d'utiliser l'espace de noms "MyNamespace" et d'appeler ses méthodes, mais je n'ai jamais rien fait de pareil. Merci

Répondre

3

Le compilateur C# ne prend pas en charge les fichiers inclus. Vous pouvez bien sûr utiliser un pré-compilateur, qui lirait vos fichiers de code source, et insérerait les fichiers inclus dans ceux-ci, avant de passer les nouveaux fichiers au compilateur.

En ce qui concerne la production d'une bibliothèque de classes, bien sûr. Vous pouvez le faire de deux façons:

  1. Vous pouvez rendre le code source du projet disponible, de sorte qu'ils ajouteraient le projet avec tous ses fichiers dans leur propre projet, et compiler ainsi votre bibliothèque de classes dans le cadre de leur solution .
  2. Vous pouvez le compiler vous-même, ce qui produit un fichier d'assemblage sur le disque (YourClassLibrary.dll), puis donner ce fichier à vos collègues. Ils ajouteraient alors une référence au fichier et pourraient commencer à l'utiliser.
0

Vous ne pouvez pas, sauf en utilisant un préprocesseur externe. Vous pouvez utiliser T4, qui est déjà utilisé par Microsoft comme outil de création de modèle de texte, par ex. pour la génération de code avec Entity Framework; voir ceci MSDN documentation page.

Avec T4, vous devez inclure un autre fichier source comme ceci:

<#@ include file="c:\test.txt" #> 

maintenant au point plus fondamental: Y compris les fichiers source n'est pas la façon dont vous créez habituellement les bibliothèques, surtout pas. NET. Ce que vous feriez serait de créer une classe (probablement une classe statique) contenant vos méthodes. Vous compilez ensuite ceci et donnez l'assembly résultant (fichier .dll) à vos collègues. Ils pourront le charger comme référence dans leur projet .NET et utiliser votre classe.

public static class MyFunctions 
{ 
    public static void MyMethod1(...) { ... } 
    public static int MyMethod2(...) { ... } 
    ... 
} 

(Bien sûr, ce code est plus procédural que la bonne conception orientée objet, mais cela peut ou ne peut pas être un problème pour vous.)

0

Non, pas de cette façon. Mais vous pouvez créer une bibliothèque de classes et y placer toutes les classes dont vous avez besoin. Ils ajoutent simplement une référence à cette DLL de leur projet et importent l'espace de noms, voila, ils peuvent utiliser les classes.

Questions connexes