小编Ars*_*han的帖子

ResolveAll无法正常工作

我有一个看起来像这样的代码.当ResolveAll我试图做一个 我期望IParserType从容器实例中产生的所有注册的类型.但我没有得到任何实例Unity.我在这里假设或做错了什么.

public class ResolveAllDemo
{
    public ResolveAllDemo()
    {
        var container = new UnityContainer();

        container.RegisterInstance<IUnityContainer>(container);
        container.RegisterType<IParser, SuperParser>();
        container.RegisterType<IParser, DefaultParser>();
        container.RegisterType<IParser, BasicParser>();
        //   container.RegisterType<Crawler>();
        container.RegisterType<IParserFactory, UnityParserFactory>();

        foreach (var registeredMember in container.ResolveAll<IParser>())
        {
            LoggingUtility.LogerInstance.Logger.Write(registeredMember);
        }
    }

    #region Resolve Demo

    public interface IParserFactory
    {
        IEnumerable<IParser> BuildParsers();
    }

    public class UnityParserFactory : IParserFactory
    {
        private IUnityContainer _container;

        public UnityParserFactory(IUnityContainer container)
        {
            _container = container;
        }

        public IEnumerable<IParser> BuildParsers()
        {
            return _container.ResolveAll<IParser>();
        }
    }

    public class DefaultParser : IParser …
Run Code Online (Sandbox Code Playgroud)

c# unity-container

24
推荐指数
2
解决办法
7201
查看次数

WebSocketException (0x80004005): 远程方在没有完成关闭握手的情况下关闭了 WebSocket 连接

我有一个使用 WebSocket 进行通信的 Xamarin 应用程序。在客户端,我引用了ClientWebSocket.

代码:

using (var client = new ClientWebSocket() { Options = { KeepAliveInterval = new TimeSpan(0,0,3,0) }})
{
    try
    {
        await client.ConnectAsync(requestUri, cancellationToken);
        do
        {
            WebSocketReceiveResult result = null;
            var buffer = new byte[ReceiveChunkSize];
            var message = new ArraySegment<byte>(buffer);
            do
            {
                result = await client.ReceiveAsync(message, cancellationToken);
                var receivedMessage = Encoding.UTF8.GetString(buffer, 0, result.Count);
                data.Append(receivedMessage);
                if (result.MessageType != WebSocketMessageType.Text)
                    break;

            } while (!result.EndOfMessage);

            TranslateData(data);
        } while (client.State == WebSocketState.Open && !cancellationToken.IsCancellationRequested);
Run Code Online (Sandbox Code Playgroud)

应用程序断断续续地抛出:

 System.Net.WebSockets.WebSocketException (0x80004005): The remote …
Run Code Online (Sandbox Code Playgroud)

c# visual-studio websocket xamarin

9
推荐指数
1
解决办法
8676
查看次数

从另一个线程更新ObservableCollection

我一直在尝试处理Rx库并使用MVVM在WPF中进行处理.我将我的应用程序分解为诸如存储库和ViewModel之类的组件.我的存储库能够一个接一个地提供学生集合,但是当我尝试添加到View绑定的ObservableCollection时,它会抛出一个线程错误.我会指出一些指针,让这对我有用.

c# wpf system.reactive

6
推荐指数
1
解决办法
6776
查看次数

在WPF中使用Unity解析时,SynchronizationContext.Current为null

我有一个看起来像这样的WPF代码.

public class AlphaProductesVM : BaseModel
{
    private  ObservableCollection<Alphabetical_list_of_product> _NwCustomers;
    private int i = 0;

    public AlphaProductesVM ()
    {
        _NwCustomers = new ObservableCollection<Alphabetical_list_of_product>();
        var repository = new NorthwindRepository();
           repository
               .GetAllProducts()
               .ObserveOn(SynchronizationContext.Current)
               .Subscribe(AddElement);
    }
    public void AddElements(IEnumerable<Alphabetical_list_of_product> elements)
    {
        foreach (var alphabeticalListOfProduct in elements)
        {
            AddElement(alphabeticalListOfProduct);
        }
    }


    public ObservableCollection<Alphabetical_list_of_product> NwCustomers
    {
        get { return _NwCustomers; }
        set { _NwCustomers = value; }
    }}
Run Code Online (Sandbox Code Playgroud)

我使用Unity来解决上述问题AlphaProductesVM.使用PRISM和UnityBootstrapper发现模块时,这是即时的.在运行时.ObserveOn(SynchronizationContext.Current)抛出异常并SynchronizationContext.Current在其中包含null值.

c# wpf unity-container mvvm system.reactive

5
推荐指数
1
解决办法
3464
查看次数

Dockerized .NET6 应用程序抛出 Microsoft.Data.SqlClient.SqlException (0x80131904) 错误

我有一个使用 Azure Sql 服务器的 .net6 应用程序。该应用程序在 .Net3.1 上运行良好,但是当移植到 .Net6 时,该应用程序会抛出 Sql 服务器错误

Microsoft.Data.SqlClient.SqlException (0x80131904):您尝试连接的 SQL Server 实例需要加密,但本计算机不支持它

dockerfile 非常通用,如下所示

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Presentation/Web.Cms/Web.Cms.csproj", "Presentation/Web.Cms/"]
RUN dotnet restore "Presentation\Web.Cms\Web.Cms.csproj"
COPY . .
WORKDIR "/src/Presentation/Web.Cms"
RUN dotnet build "Web.Cms.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Web.Cms.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Web.Cms.dll"]
EXPOSE 80
EXPOSE 443 …
Run Code Online (Sandbox Code Playgroud)

docker azure-sql-database .net-6.0

4
推荐指数
1
解决办法
2673
查看次数