Laden...

Forenbeiträge von Poolgate Ingesamt 3 Beiträge

04.09.2024 - 21:37 Uhr

Hier ist mein Github:

https://github.com/Poolgates/Nature

Leider sind nicht die Standard Server Files drauf, aber mein Code 😉

04.09.2024 - 20:58 Uhr

hier ist mein csproj:

<Project Sdk="Microsoft.NET.Sdk">
 <PropertyGroup>
   <TargetFramework>net6.0</TargetFramework>
   <ImplicitUsings>enable</ImplicitUsings>
   <Nullable>enable</Nullable>
   <BaseOutputPath>C:\Users\sasch\Desktop\Projekt\resources\server</BaseOutputPath>
   <GeneratePackageOnBuild>False</GeneratePackageOnBuild>
   <EnforceCodeStyleInBuild>False</EnforceCodeStyleInBuild>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
 </PropertyGroup>
 <ItemGroup>
   <PackageReference Include="AltV.Net" Version="16.2.2" />
   <PackageReference Include="AltV.Net.Async" Version="16.2.2" />
   <PackageReference Include="AltV.Net.Async.CodeGen" Version="16.2.2" />
   <PackageReference Include="AltV.Net.CApi" Version="16.2.2" />
   <PackageReference Include="AltV.Net.Client" Version="16.2.2" />
   <PackageReference Include="AltV.Net.ColShape" Version="16.2.2" />
   <PackageReference Include="AltV.Net.EntitySync" Version="1.18.0" />
   <PackageReference Include="AltV.Net.EntitySync.ServerEvent" Version="16.2.2" />
   <PackageReference Include="AltV.Net.Interactions" Version="16.2.2" />
   <PackageReference Include="AltV.Net.Resources.Chat.Api" Version="16.2.2" />
   <PackageReference Include="AltV.Net.Shared" Version="16.2.2" />
   <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
   <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
 </ItemGroup>
</Project>

I benutze net6.0 und have als Projekt eine Klassenbibliothek gewählt. Altv ist ein API um einen Gameserver zu errichten. Ich habe hier nichts fehlerhaftes endeckt

03.09.2024 - 20:14 Uhr

Hallo Zusammen,

ich beisse mir gerade die Zähne aus und verstehe nicht, warum ich hier eine FehlerMessage erhalte. Hier meine Ausgangssituation: Um das Single-Responsibility-Prinzip einzuhalten möchte ich gerne in meinen Projekt die Klassen entkoppeln. Dabei habe ich das Nudget: Microsoft.Extension.DependenyInjection installiert.

In meine Solution gibt es die Klasse Charakter sowie die Schnittstelle ICharakter:

using Nature.Models;
namespace Nature.Contracts
{
    public interface ICharacter
    {
        Character GetPlayerCharakter();
        void CreateNewCharacter(string charname, int gender);
    }
}
  using Nature.Contracts;
  public class Character : ICharacter
  {
      // Klassenvariable
      private readonly ICharacter? _player;

        // Eigenschaften
        public string CharName {get; set;}
        public int Gender {get; set;} 

      // Konstruktor
      public Character(IClassicPlayer player)
      {
          _player = player;         
      }

      // Objectverweis
     public void CreateNewCharacter(string charname, int gender)
     {
         this.CharName = charname;
         this.gender = gender;
     }

Weiterhin habe ich ein DI Container mit IOC eingerichtet in eine separate Klasse:

using Microsoft.Extensions.DependencyInjection;
using Nature.Contracts;
using Nature.Models;

namespace Nature.Services
{
    internal class ObjectProvider
    {
        public static void CreateObjects()
        {
            IServiceCollection collection = new ServiceCollection();
            collection.AddTransient<ICharacter, Character>();
                     
           IServiceProvider provider = collection.BuildServiceProvider();
           Character character = provider.GetService<Character>()!;
           character.CreateNewCharacter("Sotti", 0);
        }
    }
}

Nun bekomme ich folgenden Fehler und verstehen diesen nicht. Was mache ich falsch. In der Solution gibt es keine Fehler. Während der Laufzeit wird eigentlich ein Objekt Character eröffnet, aber ich komme dann folgenden Fehler:

System.IO.FileNotFoundException: "Could not load file or assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. Das System kann die angegebene Datei nicht finden."

Kann mir einer helfen?

VIele Grüße

Poolgate