Я хочу использовать в моей PowerShell интерфейс из моей пользовательской библиотеки .net, но я всегда получаю эту ошибку:
class Logger : Systems.SysBiz.BaseTransversal.ILoggerBl
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unable to find type [Systems.SysBiz.BaseTransversal.ILoggerBl].
Если я использую, например, интерфейс IComparable из пространства имен системы, он работает нормально.
[System.Reflection.Assembly]::LoadFile('MyPath\BaseTransversal.dll')
class Logger : Systems.SysBiz.BaseTransversal.ILoggerBl
{
[bool] $SendMailException = $false;
Logger()
{
}
[void] LogFatal([string] $message, [object[]] $args)
{
Write-Host $message;
}
[void] LogException([System.Exception] $ex, [string] $message, [object[]] $args)
{
Write-Host $this.FormatException($ex);
}
[void] LogError([string] $message, [object[]] $args)
{
Write-Host $message;
}
[void] LogWarning([string] $message, [object[]] $args)
{
Write-Host $message;
}
[void] LogInfo([string] $message, [object[]] $args)
{
Write-Host $message;
}
[void] LogTrace([string] $message, [object[]] $args)
{
Write-Host $message;
}
[void] LogDebug([string] $message, [object[]] $args)
{
Write-Host $message;
}
[string] FormatException([System.Exception] $ex)
{
if (!$ex)
{
return "";
}
return "<br/><b>" + $ex.Message + "</b><p>" + $ex.StackTrace + "</p><br/>" + $this.FormatException($ex.InnerException);
}
}
Здесь мой .net интерфейс
namespace Systems.SysBiz.BaseTransversal
{
public interface ILoggerBl
{
bool SendMailException { get; }
void LogFatal(string message, params object[] args);
void LogException(Exception ex, string message, params object[] args);
void LogError(string message, params object[] args);
void LogWarning(string message, params object[] args);
void LogInfo(string message, params object[] args);
void LogTrace(string message, params object[] args);
void LogDebug(string message, params object[] args);
string FormatException(Exception ex);
}
}
ОБНОВЛЕНИЕ: Добавлен полный код PowerShell класса. Я также пробовал использовать пустой интерфейс в моем .NET-коде, но похоже, что я могуне вижу / не использую мои интерфейсы, даже если они общедоступны.Я что-то пропустил
ОБНОВЛЕНИЕ 2: добавлена точная ошибка