There are a few options:
It is possible to create and expose a .NET class in an assembly as a COM control (interop) so that it is usable in Delphi.
Delphi was .Net for a while (but it wasn't Delphi's brightest hour), so with Delphi 2006 for example you can use Delphi as a .Net language. However just like, if not more so, any other Delphi version change, there are incompatiblities with older source code.
EDIT
To do the first method, you'll want to create your assembly with classes/functionality you need in a .NET language and compile it. You should end up with a DLL.
In Delphi, under the Component menu, select Import Component (it should be below Install Packages). You'll get a wizard which should have 3 radio options
- Import Type library
- Import ActiveX control
- Import .NET Assembly
Choose the third and you'll see a list of globally registered assemblies. Since your assembly is just an anonymous DLL, click Add near the bottom and in the open dialog select the DLL.
On the next page you'll be asked for palette information. Here you have a choice - specify your projects folder and leave "Generate Component Wrappers" unchecked to add the assembly to your project only. The other choice is to put it in the lib or other global folder and check the wrapper option, which will add it to the tool palette for all projects.
The last screen will ask if you want to add it to your current project (depends on if you where adding it globally or just to one project).
When all is done you should be able to create instances of your .Net class in Delphi with something like this:
var MyCSharpClassInstance: TMyCSharpClassProvider;
begin
MyCSharpClassInstance:=CoTMyCSharpClassProvider.Create;
…
MyCSharpClassInstance.Free;
End