Comments (3)
The types are loaded when the proto channel is first initialized in case of server and for the first requests in case of clients. In both the latter instances it is done as the library finds all the related types for the data contracts in question, these types are then used to build a tree which is cached for sending to the client (only the server does this operation, in case of clients, it requests the server for the output of this search). As the lib now does not know in which libraries it is supposed to be looking for child types of the orginal data contract, it looks everywhere.
I meant to refactor this and find a more efficient method (and now I have the motivation), in the meantime if you are seeing an error it is because there is some assembly which is referenced in your host project (server side) which cannot be found, you should locate that reference and remove it from the project. The latter although is an issue in the server side host project, but since it does not impact normal workings of any other WCF channel, it should not impact the proto channel as well and I will fix the same hopefully by this weekend.
from protobuf.services.
Thanks for a really quick response. That's a great news. Using your library is very convenient vs the plain protobuf-net, so you may expect some other input from my side shortly.
from protobuf.services.
hmmm... went looking further into this.... short of exposing the exclusion list as a configuration, there is no way for shortening it, the code maps the types and its children in order to make it possible for protoBuf to work across servers and clients.
This loading of assemblies only results in slowing the first request to the server and for the client, its first request to the server, this should not be an issue.
There is a scenario where if a referenced assembly does not exist in the bin folder (or GAC) the server errors out, but since this should be fixed at the server anyway and will never be an issue for clients, I'm gonna ignore this for now instead of adding more configurations, let me know what you think.
from protobuf.services.
Related Issues (19)
- Serialization with different types of collections HOT 1
- Operations with void return types are not supported HOT 1
- Make the library portable HOT 2
- Remove Lz4 compression option
- Add support for Reader Quotas for large data HOT 1
- Add support for Https Transport
- Add support for WebAPI 2.2 HOT 1
- Support duplex?
- InvalidOperationException when OperationContract method has DateTime parameters
- Self Hosted WCF
- Add support for compression HOT 2
- Add support for TCP Transport HOT 1
- Meta data cache cleanup if serialization fails. HOT 1
- Failure in casse the return type is directly a collection of contract or a dictionary HOT 1
- When server is not available, metadata rq throws object reference HOT 1
- Default namespace has an incorrect hardcoded value
- Nested Types with dictionaries causes deserialization errors HOT 1
- Serialization between lists and arrays in root causes incorrect meta data to be picked
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from protobuf.services.